500多个单元格引用和120个工作簿

时间:2016-11-24 15:47:38

标签: python excel vba excel-vba

我有120个不同的Excel原始数据文件,我需要从一个概览工作簿中将大约500个(可能更多)不同单元格中的数据拉成表格格式。最有效的方法是什么?

每个工作簿的布局是相同的,因此我开始将新的概述表链接到第一个数据文件中的单元格,并计划使用find和replace来更改路径以引用其他数据文件。至少可以说这很费力!

我也在学习Python,所以欢迎基于Python的解决方案,或者几乎任何解决方案!

谢谢,

1 个答案:

答案 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文件,并将它们放入一个新的电子表格中,然后放入下一个,依此类推。