【问题标题】:OpenPyxl Copy a range of rows x timesOpenPyxl复制一系列行x次
【发布时间】:2022-09-23 14:21:04
【问题描述】:

我有一个 400 多列和 48 行长的 excel 表。 我希望 openpyxl 用完全相同的值再复制 x 次。

很可能它会像 x=4,所以 4x 48 行。

我似乎找不到这样做的解决方案。我可以通过循环来做到这一点,但它会花费很多运行时间。

是否没有选项可以复制一系列行并将其粘贴到 excel 文件的末尾?

    标签: python openpyxl


    【解决方案1】:

    最简单的方法可能是使用 Pandas。
    您可以创建 Excel 工作表的数据框,然后将 X 次粘贴回 Excel。
    以下代码是一个示例。它不包括原始中的任何行标题,但是如果存在并且需要,您可以第一次使用标题转储。

    import pandas as pd
    
    in_filename = 'Original.xlsx'
    in_sheet = 'Sheet1'
    out_filename = 'NewBook.xlsx'
    save_sheet = 'NewSheet'
    number_duplicates = 3
    
    # Create dataframe from the original 
    df = pd.read_excel(in_filename, sheet_name=in_sheet)
    
    # Create writer to write df to Excel workbook
    writer = pd.ExcelWriter(out_filename, engine='openpyxl')
    for i in range(number_duplicates): 
        # Write dataframe without header row or index column
        df.to_excel(writer, sheet_name=save_sheet,
                    index=False,
                    header=False,
                    startrow=i*len(df.index),
                    startcol=0)
    
    writer.save()
    

    【讨论】:

      猜你喜欢
      • 2017-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-17
      • 2021-09-14
      • 1970-01-01
      • 2021-11-29
      • 1970-01-01
      相关资源
      最近更新 更多