python 中的 Openpyxl for 循环将多个 excel 文件中的特定行合并为一个
Openpyxl in python making for loop to merge specific row from many excel files into one
我正在尝试制作一个 python 代码,从 excel sheet 中取出特定行并将其复制到一个中。我想对很多文件(大约 1000 个文件)执行此操作。因此,我希望将每个 excel 文档中的特定行放入目标 excel 文件中的新行。我该如何修改我的代码来执行此操作?
这是我现在拥有的:
filename =str('c:\user\script\results\viktor\ESS_result_DetectorE503B35_Sewage.xlsx')
wb1 = xl.load_workbook(filename)
ws1 = wb1.worksheets[0]
filename1 ="c:\user\script\results\viktor\ESS.xlsx"
wb2 = xl.load_workbook(filename1)
ws2 = wb2.active
mr = 2
mc = ws1.max_column
for i in filename:
for j in range (1, mc + 1):
c = ws1.cell(row = 3, column = j)
ws2.cell(row = 3, column = j).value = c.value
wb2.save(str(filename1))
在你的例子中,你不应该循环 filename
的字符串,而是循环 filenames
.
的列表
filenames = [ur filenames here]
source_xl_filename = r'xxxxxx'
source_wb = xl.load_workbook(source_xl_filename)
ws1 = source_wb.worksheets[0]
def batch_save_xl(filename):
wb2 = xl.load_workbook(filename)
ws2 = wb2.active
mr = 2
mc = ws1.max_column
for i in filename:
for j in range (1, mc + 1):
c = ws1.cell(row = 3, column = j)
ws2.cell(row = 3, column = j).value = c.value
wb2.save(str(filename1))
for filename in filenames:
batch_save_xl(filename)
我正在尝试制作一个 python 代码,从 excel sheet 中取出特定行并将其复制到一个中。我想对很多文件(大约 1000 个文件)执行此操作。因此,我希望将每个 excel 文档中的特定行放入目标 excel 文件中的新行。我该如何修改我的代码来执行此操作?
这是我现在拥有的:
filename =str('c:\user\script\results\viktor\ESS_result_DetectorE503B35_Sewage.xlsx')
wb1 = xl.load_workbook(filename)
ws1 = wb1.worksheets[0]
filename1 ="c:\user\script\results\viktor\ESS.xlsx"
wb2 = xl.load_workbook(filename1)
ws2 = wb2.active
mr = 2
mc = ws1.max_column
for i in filename:
for j in range (1, mc + 1):
c = ws1.cell(row = 3, column = j)
ws2.cell(row = 3, column = j).value = c.value
wb2.save(str(filename1))
在你的例子中,你不应该循环 filename
的字符串,而是循环 filenames
.
filenames = [ur filenames here]
source_xl_filename = r'xxxxxx'
source_wb = xl.load_workbook(source_xl_filename)
ws1 = source_wb.worksheets[0]
def batch_save_xl(filename):
wb2 = xl.load_workbook(filename)
ws2 = wb2.active
mr = 2
mc = ws1.max_column
for i in filename:
for j in range (1, mc + 1):
c = ws1.cell(row = 3, column = j)
ws2.cell(row = 3, column = j).value = c.value
wb2.save(str(filename1))
for filename in filenames:
batch_save_xl(filename)