gpt4 book ai didi

python - xlutils 只适用于 xls,不适用于 xlsx?

转载 作者:行者123 更新时间:2023-12-01 02:39:07 25 4
gpt4 key购买 nike

我有一个现有的 Excel 工作簿 Workbook_A。我正在创建一个相同的工作簿 Workbook_B,然后将一些值插入到新工作簿的某些单元格中。

我正在做的事情的简化版本:

from xlrd import open_workbook
from xlutils.copy import copy

rb = open_workbook(Workbook_A)
wb = copy(rb)
s = wb.get_sheet(0)
s.write(row, col, value)
wb.save(Workbook_B)

Workbook_A 在这里可以是 xlsx 文件,但我必须将其另存为 xls 文件,Workbook_B.xls.否则文件会损坏并且无法打开。

有办法解决这个问题吗?我可以将 xlutilsxlsx 一起使用,还是该模块与该 Excel 格式不兼容?

openpyxl the solution?

我不是第一个遇到 this problem 的人,但我找不到修复方法。

最佳答案

xlutils依赖xlrd (读取文件)和 xlwt (写入文件),因此, save xlutils的功能实际使用 xlwt .

.xlsx是一种较新且完全不同的文件格式(基本上是压缩的 xml 文件),来自 .xls 。而xlrd已升级为 .xlsx文件,xlwt未升级为写入此类文件( does xlwt support xlsx Format )。

xlwt only writes older Excel ( .xls ) files ,传递 .xlsx 扩展名不会改变任何事情。底层格式仍然是.xls (并且被 MS Excel 视为损坏,因为它依赖扩展名而不是内容来决定如何打开文件)

所以,要么使用 openpyxl做你想做的事(完全删除 xlutilsxlrdxlwt 因为你不关心旧版 .xls 格式),或另存为临时 .xls使用当前进程创建文件,然后使用 xlrd 读回表并写回openpyxl .

根据当前代码的复杂性,您可以选择完全重写或涉及更多包的肮脏解决方法(但避免重写当前代码)

关于python - xlutils 只适用于 xls,不适用于 xlsx?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45915266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com