我有120個不同的Excel原始數據文件,從那些我需要將數據從大約500(也許更多)不同單元格拉到一個概覽工作簿中的表格格式。什麼是最有效的方法來做到這一點?500+單元格引用和120個工作簿
每個工作簿的佈局是相同的,所以我已經開始將我的新概覽錶鏈接到第一個數據文件中的單元格,並計劃使用查找和替換來更改引用其他數據文件的路徑。至少可以這麼說!
我也學習Python,所以會歡迎基於Python的解決方案,或幾乎任何解決方案的真正!
謝謝
喬
我有120個不同的Excel原始數據文件,從那些我需要將數據從大約500(也許更多)不同單元格拉到一個概覽工作簿中的表格格式。什麼是最有效的方法來做到這一點?500+單元格引用和120個工作簿
每個工作簿的佈局是相同的,所以我已經開始將我的新概覽錶鏈接到第一個數據文件中的單元格,並計劃使用查找和替換來更改引用其他數據文件的路徑。至少可以這麼說!
我也學習Python,所以會歡迎基於Python的解決方案,或幾乎任何解決方案的真正!
謝謝
喬
的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文件,並把它們放入一個新的電子表格,然後把之後的下一個,依此類推。
對不起,我只是看到了這個。謝謝! – Maverick
你可以用SQL和ADO做到這一點 –
@Nathan_Sav感謝您的回覆!對於沒有任何經驗的人來說,這樣做值得學習嗎?還是需要更長的時間學習,而不是僅僅做我目前正在做的事情? – Maverick
創建VBA腳本應該相對容易,該腳本可以打開特定目錄中的每個文件並複製/粘貼每個人的某些特定值,但當然需要一段時間才能逐一計算這麼多工作簿。見:http://stackoverflow.com/questions/10380312/loop-through-files-in-a-folder-using-vba – Limak