【发布时间】:2021-12-09 20:59:02
【问题描述】:
我正在使用 xlwt 模块将文本文件导入 excel。但它只允许存储 256 列。有没有办法解决这个问题?
【问题讨论】:
标签: python
我正在使用 xlwt 模块将文本文件导入 excel。但它只允许存储 256 列。有没有办法解决这个问题?
【问题讨论】:
标签: python
xlwt 支持创建由 Excel 97-2003 创建并由 Excel 97 及更高版本读取的 XLS 文件。文件格式限制为 256 列和 65536 行。在xlwt 源代码中将 256 更改为其他数字不会改变这一点。
您有 3 个选项,按复杂度递增的顺序排列:
(1) 按照别人的建议,写一个 CSV 文件。
(2)openpyxl ... Excel 2007+ xlsx/xlsm 格式
(3) win32 COM(仅限 Windows)
【讨论】:
xlwt 包中的文件Column.py 中的第 8 行将列限制设置为 256:
raise ValueError("column index (%r) not an int in range(256)" % colx)
您可以在xlwt 源中更改此数字以允许更多列,但这会破坏与旧版(编辑:所有)excel 的兼容性。
编辑 xlwt 维护者说这行不通,所以不要尝试这样做(我会留下这个答案在这里,因为我认为发出警告很有用)。
【讨论】:
使用 xlsxwriter 和 pandas。
import xlsxwriter, pandas
writer = pandas.ExcelWriter(file, engine='xlsxwriter')
pandas.to_excel(writer, sheet_name='Sheet1')
writer.save()
【讨论】:
xlwt模块
这是事实陈述还是 xlwt 应该支持超过 256 列?你得到什么错误?你的代码是什么样的?
如果确实有 256 列的限制,只需使用适当的 python 模块将数据写入 csv 文件,然后将文件导入 Excel。
【讨论】:
import pandas as pd
writer = pd.ExcelWriter('..\output\The file.xlsx',engine='xlsxwriter')
file.to_excel(writer,'output_sheet')
writer.save()
【讨论】:
如果您尝试写入 for 循环中的列并收到此错误,则在迭代时将列重新初始化为 0。
【讨论】: