我有一个名为“File.xlsx”的现有 excel 文件和一个名为“MySheet”的工作表MySheet中的数据目前是一个范围,我想打开excel文件,将MySheet中的数据转换成excel表格。我能够成功地完成这部分,但是当我打开 excel 文件时,我收到一条错误消息:已修复的记录:来自 /xl/tables/table1.xml 部分的表(表)该脚本可用于创建表格,但我想避免 excel 文件出现不可读错误。我正在使用的脚本在这里:from openpyxl.worksheet.table import Tablefrom openpyxl.utils import get_column_letterfile_name = "File.xlsx"wb = load_workbook(file_name)ws = wb['MySheet']max_row = ws.max_rowmax_column = ws.max_columntable = Table(displayName="FailureData", ref="A1:" + get_column_letter(max_column) + str(max_row))ws.add_table(table)wb.save(file_name)wb.close()
3 回答
慕虎7371278
TA贡献1802条经验 获得超4个赞
在我的例子中,当 2 个标头字段具有相同的名称时会发生错误。解决方案是通过在每次重复时递增 1 来确保标头中具有唯一的字段名称:
f = ["Ford", "Volvo", "BMW", "Ford", "Ford"]
print(f)
>>['Ford', 'Volvo', 'BMW', 'Ford', 'Ford']
fields_out = [(x if i == f.index(x) else x + str(f.count(x) - f[i + 1:].count(x))) for i, x in enumerate(f)]
print(fields_out)
>>['Ford', 'Volvo', 'BMW', 'Ford2', 'Ford3']
对于通过界面进行的相同操作,Excel 会修改重复字段的名称。
openpyxl 版本 3.0.5
添加回答
举报
0/150
提交
取消