Pythonは複数のExcelワークシートデータを1つのワークシートに整理する(2)
2096 ワード
この文書ではopenpyxlを使用して、同じフォルダの下にあるすべてのExcelファイルのデータを新しいExcelワークシートに整理し、整理するデータはExcelワークブックのすべてのsheetにあり、同じヘッダー構造を有しています.
コードは次のとおりです.
コードは次のとおりです.
# -*- coding: utf-8 -*-
__author__ = 'Ceres'
import openpyxl
import os.path
import os
def main():
rootdir = "./SortExcel" # Excel SortExcel
files = os.listdir(rootdir) # Excel
num = len(files) #
finalWB = openpyxl.Workbook() #
sheet = finalWB.active
sheet.title = "allcase" #
print("Reading data...Please wait")
crow = 1 #
k = 1
for i in range(num): # Excel
path = os.path.join(rootdir, files[i])
if os.path.isfile(path):
if files[i] == "allcase.xlsx":
continue
else:
wb = openpyxl.load_workbook(filename=path)
wsheets = wb.get_sheet_names()
sheetnum = len(wsheets)
for s in range(sheetnum): # worksheet
ws = wb.get_sheet_by_name(wsheets[s]) # s sheet
end_row = ws.max_row
end_column = ws.max_column
start_row = 2 # ( )
start_column = 1 #
if k == 1: #
for j in range(start_column, end_column + 1):
sheet.cell(row=crow, column=j).value = ws.cell(row=1, column=j).value
crow += 1
k += 1
for m in range(start_row, end_row + 1):
for n in range(start_column, end_column + 1):
sheet.cell(row=crow, column=n).value = ws.cell(row=m, column=n).value
crow += 1
print(files[i])
print("Saving...")
finalWB.save("./SortExcel/allcase.xlsx") # allcase.xlsx, SortExcel
print("Complete! Saved to ./SortExcel/allcase.xlsx")
main()