python pandas合並多個Excel為不同sheet,VB合並多個Excel


一: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

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM