簡介
如果有很多excel檔案需要合併到乙個excel檔案中,使用複製貼上來操作是非常痛苦,這時可以使用python來批量自動操作。
把需要合併的excel檔案放到同一資料夾下。
安裝需要的庫
python環境python3
pip3 install xlrd
pip3 install xlsxwriter**#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @author: aiker zhao
# @date : 2019/5/4 9:34 am
# @file : megerexcel.py
# @desc :
import xlrd
import xlsxwriter
import os
path = "/users/aiker/documents/xzexcel/1-6/"
def get_allxls(): # 獲取excel檔案列表
all_xls =
for f in os.listdir(path):
f_name = path + f
all_xls.append(f_name)
return all_xls
def open_xls(file): # 開啟乙個excel
fh = xlrd.open_workbook(file)
return fh
def getsheet(fh): # 獲取excel表中的所有sheet
return fh.sheets()
def getnrows(fh, sheet): # 獲取sheet表中的行數
table = fh.sheets()[sheet]
return table.nrows
def getfilect(file, shnum): # 讀取檔案內容並返回內容
fh = open_xls(file)
table = fh.sheets()[shnum]
num = table.nrows
for row in range(num):
rdata = table.row_values(row)
dat**alue.append(rdata)
return dat**alue
def getshnum(fh): # 獲取sheet表的個數
x = 0
sh = getsheet(fh)
for sheet in sh:
x += 1
return x
if __name__ == '__main__':
allxls = get_allxls() # 定義要合併的excel檔案列表
dat**alue =
for fl in allxls: # 儲存所有讀取的結果
fh = open_xls(fl)
x = getshnum(fh)
for shnum in range(x):
print("正在讀取檔案:" + str(fl) + "的第" + str(shnum) + "個sheet表的內容...")
rvalue = getfilect(fl, shnum)
endfile = "/users/aiker/documents/xzexcel/行政工作統計19-6.xls" # 合併後的檔案
wb1 = xlsxwriter.workbook(endfile)
ws = wb1.add_worksheet()
for a in range(len(rvalue)):
for b in range(len(rvalue[a])):
c = rvalue[a][b]
ws.write(a, b, c)
wb1.close()
print("excel合併完成")執行指令碼:
python3 megerexcel.py
Python批量合併多個txt檔案
coding utf 8 os模組中包含很多操作檔案和目錄的函式 import os 獲取目標資料夾的路徑 meragefiledir os.getcwd meragefiles 獲取當前資料夾中的檔名稱列表 filenames os.listdir meragefiledir 開啟當前目錄下的re...
原創 Python批量操作檔案,批量合併
最近幾個小夥伴在手動合併一些文字檔案,感覺可以用python批量實現,就有了這段 1 importos2 importre3 import sys4 5def printenter f1 每兩個檔案之間的換行操作 6 f1.write n n n 7for i in range 23 8 f1.wr...
python基礎(六)python操作excel
一 python操作excel,python操作excel使用xlrd xlwt和xlutils模組,xlrd模組是讀取excel的,xlwt模組是寫excel的,xlutils是用來修改excel的。這幾個模組使用pip安裝即可,下面是這幾個模組的使用。二 xlrd模組,xlrd模組用來讀exce...