【问题标题】:openpyxl write another new sheet when a sheet reached 1048576 rows当工作表达到 1048576 行时,openpyxl 写另一个新工作表
【发布时间】:2022-11-24 15:52:33
【问题描述】:
wb = openpyxl.Workbook()
ws = wb2.active
ws.title = 'sheet_name_1'
sheet_number = 1

for k in range(1,5242880):
    if k > 1000000:
       sheet_number = sheet_number + 1
       wb.create_sheet(sheet_number)
       # maybe add code to switch to new sheet when row is over 
       # 1000000
       k - = 1000000
    else:
       ws2.cell(row= k , column=1,value=k)
wb2.save('find_test.xlsx')

以上是脚本

我有 1048576*5=5242880 行数据要写入单个 .xlsx 文件中。

当工作表达到 1048576 行时,使用 openpyxl 创建另一个新工作表时是否有一些 openpyxl 脚本。

因此,结果是一个包含至少 6 个工作表的 .xlsx 文件,以存储超过 5242880 行。

非常感谢。

【问题讨论】:

  • 请提供足够的代码,以便其他人可以更好地理解或重现问题。

标签: python excel openpyxl limit xlsx


【解决方案1】:

尚未测试,但您可以试试这个:

excel_limit = 1048576

with pd.ExcelWriter('Final_ExcelFile.xlsx') as wr:
    for i in range(0, df.shape[0], excel_limit):
        df.iloc[i:i+excel_limit, :].to_excel(wr, sheet_name=f'Sheet_Number_{i}', index=False)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-09
    • 1970-01-01
    • 1970-01-01
    • 2017-12-21
    • 1970-01-01
    • 2022-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多