複数のシートを持つ、同じ形式の多数の Excel ファイルを含むフォルダーがあります。目標は、フォルダーをループし、各ノートブックのシートの 1 つを新しいノートブックに移動することです。つまり、新しいワークブックの各 .xlsx ファイルから 1 つのシートを作成します。普段はエクセルでDataNitroを使っているのですが、残念ながらデータをコピーする際にCellRange関数にワークブックの引数を指定できないようで、無理だと思います。VBA で実行するためのコードがありますが、私の組織は VBA から離れています。xlrd と xlutils を使用して回避策を探しています。これまでのところ、ファイルの1つのテストケースとしてこれを持っています:
import os, xlrd, xlwt, xlutils
FilePath = r"Z:\Production_Data\WaveII\2-007\20130403\Central report\March'13\March" #ENTER FILE PATH HERE
os.chdir(FilePath)
wb = xlrd.open_workbook("2nd Mar'13 CENTRAL REPORT..xls")
copy_sheet1 = wb.sheet_by_index(1)
new_book = xlwt.Workbook()
test = new_book.add_sheet('TEST')
しかし、copy_sheet1 のデータを新しいワークブックの 'TEST' シートに書き込む方法がわかりません。ちなみに、データのセルごとの反復ではなく、正確なコピー、つまり書式設定などを含むのが最善です。それが可能かどうかはわかりません。
どんな助けでも大歓迎です。
ありがとう