【发布时间】:2022-09-23 14:21:04
【问题描述】:
我有一个 400 多列和 48 行长的 excel 表。 我希望 openpyxl 用完全相同的值再复制 x 次。
很可能它会像 x=4,所以 4x 48 行。
我似乎找不到这样做的解决方案。我可以通过循环来做到这一点,但它会花费很多运行时间。
是否没有选项可以复制一系列行并将其粘贴到 excel 文件的末尾?
我有一个 400 多列和 48 行长的 excel 表。 我希望 openpyxl 用完全相同的值再复制 x 次。
很可能它会像 x=4,所以 4x 48 行。
我似乎找不到这样做的解决方案。我可以通过循环来做到这一点,但它会花费很多运行时间。
是否没有选项可以复制一系列行并将其粘贴到 excel 文件的末尾?
最简单的方法可能是使用 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()
【讨论】: