您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在Python中使用openpyxl将行插入Excel电子表格

在Python中使用openpyxl将行插入Excel电子表格

使用我现在用来实现所需结果的代码来回答这个问题。请注意,我是在位置1处手动插入行,但这应该足够容易以适应特定需求。您也可以轻松地对此进行调整,以插入多行,然后只需从相关位置开始填充其余数据即可。

另外,请注意,由于下游依赖性,我们手动从“ Sheet1”中指定数据,并将数据复制到工作表开头插入的新工作表中,同时将原始工作表重命名为“ Sheet1.5” 。

编辑:我还添加了(以后)对format_code的更改,以解决此处认复制操作删除所有格式的问题:new_cell.style.number_format.format_code = 'mm/dd/yyyy'。我找不到任何可设置的文档,更多的是反复试验的情况!

最后,请不要忘记此示例保存了原始示例。您可以在适当的地方更改保存路径来避免这种情况。

    import openpyxl

    wb = openpyxl.load_workbook(file)
    old_sheet = wb.get_sheet_by_name('Sheet1')
    old_sheet.title = 'Sheet1.5'
    max_row = old_sheet.get_highest_row()
    max_col = old_sheet.get_highest_column()
    wb.create_sheet(0, 'Sheet1')

    new_sheet = wb.get_sheet_by_name('Sheet1')

    # Do the header.
    for col_num in range(0, max_col):
        new_sheet.cell(row=0, column=col_num).value = old_sheet.cell(row=0, column=col_num).value

    # The row to be inserted. We're manually populating each cell.
    new_sheet.cell(row=1, column=0).value = 'DUMMY'
    new_sheet.cell(row=1, column=1).value = 'DUMMY'

    # Now do the rest of it. Note the row offset.
    for row_num in range(1, max_row):
        for col_num in range (0, max_col):
            new_sheet.cell(row = (row_num + 1), column = col_num).value = old_sheet.cell(row = row_num, column = col_num).value

    wb.save(file)
python 2022/1/1 18:33:44 有545人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶