我有120个不同的Excel原始数据文件,我需要从一个概览工作簿中将大约500个(可能更多)不同单元格中的数据拉成表格格式。最有效的方法是什么?
每个工作簿的布局是相同的,因此我开始将新的概述表链接到第一个数据文件中的单元格,并计划使用find和replace来更改路径以引用其他数据文件。至少可以说这很费力!
我也在学习Python,所以欢迎基于Python的解决方案,或者几乎任何解决方案!
谢谢,
乔
答案 0 :(得分:1)
Python提供了许多模块。我会推荐openpyxl
模块。你可以阅读它here。如果我理解正确,您想要组合多个Excel电子表格。我这样做的方法是为所有excel电子表格中的每一行的新电子表格添加一行。我写了一个简单的程序来做到这一点:
import openpyxl
import os
from os.path import join
spreadsheet = openpyxl.Workbook()
final_sheet = spreadsheet.get_sheet_by_name('sheet1')
x = 0
for(dir, dirs, files) in os.walk('C:\Users\Cheyn Shmuel\Documents'):
for file in files:
filename = join(dir, file)
try:
workbook = openpyxl.load_workbook(filename)
except:
continue # in case there are files that aren't excel in that directory
for s in workbook.get_sheet_names():
sheet = workbook.get_sheet_by_name(s)
for row in sheet.rows:
for cell in row:
try:
final_sheet[cell.coordinate[0] + str(int(cell.coordinate[1:]) + x)] = cell.value
except:
final_sheet[cell.coordinate[:1] + str(int(cell.coordinate[2:]) + x)] = cell.value
x += sheet.get_highest_row()
spreadsheet.save('your file.xlsx')
这个程序将遍历你目录中的所有excel文件,并将它们放入一个新的电子表格中,然后放入下一个,依此类推。