2
複数のExcelファイルを読み込み、各ファイルのデータを1つのマスターファイルに追加しようとしています。各ファイルは同じヘッダーを持ちます(最初のファイルの後の最初の行のインポートはスキップできます)。OpenPyXLを使用して複数のExcelファイルをインポートする
私はPythonとOpenPyXLモジュールの両方にかなり新しいです。最初のワークブックを問題なくインポートできます。私の問題は、後続のファイルを開いて元のワークシートに貼り付けるためにデータをコピーする必要があるときに発生します。ここで
は、これまでの私のコードです:
# Creating blank workbook
from openpyxl import Workbook
wb = Workbook()
# grab active worksheet
ws = wb.active
# Read in excel data
from openpyxl import load_workbook
wb = load_workbook('first_file.xlsx') #explicitly loading workbook, will automate later
# grab active worksheet in current workbook
ws = wb.active
#get max columns and rows
sheet = wb.get_sheet_by_name('Sheet1')
print ("Rows: ", sheet.max_row) # for debugging purposes
print ("Columns: ", sheet.max_column) # for debugging purposes
last_data_point = ws.cell(row = sheet.max_row, column = sheet.max_column).coordinate
print ("Last data point in current worksheet:", last_data_point) #for debugging purposes
#import next file and add to master
append_point = ws.cell(row = sheet.max_row + 1, column = 1).coordinate
print ("Start new data at:", append_point)
wb = load_workbook('second_file.xlsx')
sheet2 = wb.get_sheet_by_name('Sheet1')
start = ws.cell(coordinate='A2').coordinate
print("New data start: ", start)
end = ws.cell(row = sheet2.max_row, column = sheet2.max_column).coordinate
print ("New data end: ", end)
# write a value to selected cell
#sheet[append_point] = 311
#print (ws.cell(append_point).value)
#save file
wb.save('master_file.xlsx')
ありがとう!
これはうまくいきました。ファイルをファイル名の配列として定義し、ws1をws1に変更しました.Ws1を別の場所に定義していないためです。私は他の小さな編集をしなければならなかったが、全体的に私はあなたがしていたことを理解していた。日付は元のものとは異なる形式、つまり「日付」形式ではなく「カスタム」になりました。それを過度に複雑化することなくその問題を解決する簡単な方法はありますか? – Dennis
私はあなたが何を意味するのかはわかりませんが、 "日付"のフォーマットはありません。すべての日付と時刻で多かれ少なかれカスタム書式が使用されます。しかしそれは別の問題です。 –
はい、別の問題です。つまり、2015年9月1日の代わりに2015-09-01 0:00:00になるということです。本質的に、それは短い日付形式ではなくロング日付形式になります。しかし、これは大きな問題ではありません。 – Dennis