加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 如何将xls转换为xlsx

发布时间:2020-12-20 10:31:45 所属栏目:Python 来源:网络整理
导读:我有一些* .xls(excel 2003)文件,我想将这些文件转换为xlsx(excel 2007). 当我保存文档时,我使用uno python包, 我可以设置过滤器名称:MS Excel 97 但是没有像’MS Excel 2007’那样的过滤器名称, 请帮帮我,如何设置过滤器名称将xls转换为xlsx? 解决方法 我
我有一些* .xls(excel 2003)文件,我想将这些文件转换为xlsx(excel 2007).

当我保存文档时,我使用uno python包,
我可以设置过滤器名称:MS Excel 97
但是没有像’MS Excel 2007’那样的过滤器名称,

请帮帮我,如何设置过滤器名称将xls转换为xlsx?

解决方法

我以前必须这样做.主要思想是使用xlrd模块打开并解析xls文件并编写
使用openpyxl模块将内容内容添加到xlsx文件中.

这是我的代码.注意!它无法处理复杂的xls文件,如果要使用它,应该添加自己的解析逻辑.

import xlrd
from openpyxl.workbook import Workbook
from openpyxl.reader.excel import load_workbook,InvalidFileException

def open_xls_as_xlsx(filename):
    # first open using xlrd
    book = xlrd.open_workbook(filename)
    index = 0
    nrows,ncols = 0,0
    while nrows * ncols == 0:
        sheet = book.sheet_by_index(index)
        nrows = sheet.nrows
        ncols = sheet.ncols
        index += 1

    # prepare a xlsx sheet
    book1 = Workbook()
    sheet1 = book1.get_active_sheet()

    for row in xrange(0,nrows):
        for col in xrange(0,ncols):
            sheet1.cell(row=row,column=col).value = sheet.cell_value(row,col)

    return book1

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读