【python】用python實現多個excel合併成一個excel文件------直接上代碼

         小蝦也是參考了一些大神的代碼,然後自己動手實現了一下,然後發佈出來,有需要的來學習呀!

         小蝦在這兒提供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("文件合併完成")

實驗結果:

                           

                            不後悔過去,不幻想未來,把握好現在,就是對自己最好的交代!!!!!!!!!!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章