我有一個名為“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
提交
取消