小蝦也是參考了一些大神的代碼,然後自己動手實現了一下,然後發佈出來,有需要的來學習呀!
小蝦在這兒提供2種方法來實現,但小蝦比較喜歡第一種,容易而且好理解一點。
第一種實現方法:
# 導入需要使用的包
import xlrd # 讀取Excel文件的包
import xlsxwriter # 將文件寫入Excel的包
source_xls = ["C:/Users/yxx/Desktop/ing/1.xlsx", "C:/Users/yxx/Desktop/ing/2.xlsx"]
target_xls = "C:/Users/yxx/Desktop/ing/3.xlsx"
# 讀取數據
data = []
for i in source_xls:
wb = xlrd.open_workbook(i) # 先打開第一個文件1.xlsx
for sheet in wb.sheets(): # 讀取 表中的 工作表sheet的個數
for rownum in range(sheet.nrows): # 依次讀取一個sheet中的數據
data.append(sheet.row_values(rownum)) # 把其數據放入 data[]列表中
print(data) # 打印該列表
# 寫入數據
workbook = xlsxwriter.Workbook(target_xls) # 創建了一個名字叫做3.xlsx , Excel表格文件
worksheet = workbook.add_worksheet() # 建立sheet,
font = workbook.add_format({"font_size":14}) # 表格中值(字體)的大小
for i in range(len(data)): # 從data列表中讀取數據
for j in range(len(data[i])):
worksheet.write(i, j, data[i][j], font)
# 關閉文件流
workbook.close()
實驗結果:
第二種方法實現:
# 導入需要使用的包
import xlrd # 讀取Excel文件的包
import xlsxwriter # 將文件寫入Excel的包
# 打開一個excel文件
def open_xls(file):
f = xlrd.open_workbook(file)
return f
# 獲取excel中所有的sheet表
def getsheet(f):
return f.sheets()
# 獲取sheet表的行數
def get_Allrows(f, sheet):
table = f.sheets()[sheet]
return table.nrows
# 讀取文件內容並返回行內容
def getFile(file, shnum):
f = open_xls(file)
table = f.sheets()[shnum]
num = table.nrows
for row in range(num):
rdata = table.row_values(row)
datavalue.append(rdata)
return datavalue
# 獲取sheet表的個數
def getshnum(f):
x = 0
sh = getsheet(f)
for sheet in sh:
x += 1
return x
# 函數入口
if __name__ == '__main__':
# 定義要合併的excel文件列表
allxls = ['C:/Users/yxx/Desktop/ing/1.xlsx', 'C:/Users/yxx/Desktop/ing/2.xlsx'] # 列表中的爲要讀取文件的路徑
# 存儲所有讀取的結果
datavalue = []
for fl in allxls:
f = open_xls(fl)
x = getshnum(f)
for shnum in range(x):
print("正在讀取文件:" + str(fl) + "的第" + str(shnum) + "個sheet表的內容...")
rvalue = getFile(fl, shnum)
# 定義最終合併後生成的新文件
endfile = 'C:/Users/yxx/Desktop/ing/4.xlsx'
wb = xlsxwriter.Workbook(endfile)
# 創建一個sheet工作對象
ws = wb.add_worksheet()
for a in range(len(rvalue)):
for b in range(len(rvalue[a])):
c = rvalue[a][b]
ws.write(a, b, c)
wb.close()
print("文件合併完成")
實驗結果:
不後悔過去,不幻想未來,把握好現在,就是對自己最好的交代!!!!!!!!!!!!