一:python合並Excel
---原創,轉載請說明
python操作多個Excel表格合並為同一個表格的不同sheet,並且將sheet名字命名為原表格的表名
缺陷:Excel表格第一行第一列不能空,不然會缺失列
速度很慢
# -*- coding:utf-8 -*-
import pandas as pd
import os
# 結果文件
result = pd.ExcelWriter('123.xls')
# 獲取表格列表
origin_file_list = os.listdir('E:/Work/目標路徑')
print origin_file_list
# 循環遍歷表格
for i in origin_file_list:
print i
excel_file_name = i
#拼接每個文件的路徑
file_path = 'E:/Work/123/%s' % i
print file_path
# 讀取文件內容
# 跳過0行
content = pd.read_excel(file_path, skiprows=[0])
# 有缺陷,會擴展列名
# content = pd.read_excel(file_path)
# 重新定義sheet名字
sheet_name = i[:len(i) - 4]
# 轉換為同一個表多個sheet
content.to_excel(result, sheet_name, index=False)
# content.to_excel()
result.save()
二:Excel表格宏命令合並
新建一個Excel表格,點擊底部sheet,右鍵查看代碼,粘貼代碼,頂部運行,選擇對應的多個Excel即可生成。
Sub Books2Sheets() Dim fd As FileDialog Set fd = Application.FileDialog(msoFileDialogFilePicker) Dim newwb As Workbook Set newwb = Workbooks.Add With fd If .Show = -1 Then Dim vrtSelectedItem As Variant Dim i As Integer i = 1 For Each vrtSelectedItem In .SelectedItems Dim tempwb As Workbook Set tempwb = Workbooks.Open(vrtSelectedItem) tempwb.Worksheets(1).Copy Before:=newwb.Worksheets(i) '把新工作簿的工作表名字改成被復制工作簿文件名,這兒應用於xls文件,即Excel97-2003的文件,如果是Excel2007,需要改成xlsx newwb.Worksheets(i).Name = VBA.Replace(tempwb.Name, ".xls", "") '關閉 tempwb.Close SaveChanges:=False i = i + 1 Next vrtSelectedItem End If
