您好,登錄后才能下訂單哦!
怎么在Python中對格式一致的Excel文件進行合并?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
最近朋友在工作中遇到這樣一個問題,她每天都要處理如下一批 Excel 表格:每個表格的都只有一個 sheet,表格的前兩行為表格標題及表頭,表格的最后一行是相關人員簽字。最終目標是將每個表格的內容合并到一個 Excel 表格中,使之成為一張表格。在她未咨詢我之前,每天復制粘貼這一類操作占用了她絕大部分時間。表格樣式如下:
根據她的描述,最終需求應該是這樣的:在這一批表格中選取任意一個表格的前兩行作為新表格的標題與表頭,將這兩行內容以嵌套列表的形式插入一個名為 data 空列表中。取每張表格的第3至倒數第二行,剔除空白行的內容。并將所有表格的內容以子列表的方式依次插入 data 列表中。任取一表格的最后一行以子列表的方式插入 data 列表中。最后將 data 列表的內容寫入一個新的 Excel 表格中。
通過幾分鐘的上網查詢,得出以下結論:
3.1 通過 xlrd 和 xlsxwriter 模塊即可解決次需求;
3.2 之所以使用 xlrd 和 xlsxwriter 是因為: xlrd擅長讀取 Excel 文件,不適合寫入,用 xlsxwriter 來進行大規模寫入 Excel 表格不會出現報錯。
一切以解決當前問題為向導,說干就干。 coding … …
# -*- coding:utf-8 -*- import os, xlrd, xlsxwriter source_dir = r'input' new_execl = "All in one.xlsx" raw_excels = os.listdir(source_dir) keyword = "油站經理" # 除包括此關鍵字的行均插入 data = [] filename = os.path.join(source_dir, raw_excels[0]) wb = xlrd.open_workbook(filename) sheet = wb.sheets()[0] data.append(sheet.row_values(0)) data.append(sheet.row_values(1)) for excel in raw_excels: filename = os.path.join(source_dir, excel) wb = xlrd.open_workbook(filename) sheet = wb.sheets()[0] for row_num in range(2, sheet.nrows): row_values = [str(i) for i in sheet.row_values(row_num)] if len(''.join(row_values)) and (keyword not in ''.join(row_values)): data.append(sheet.row_values(row_num)) data.append(sheet.row_values(sheet.nrows-1)) new_wb = xlsxwriter.Workbook(new_execl) worksheet = new_wb.add_worksheet() font = new_wb.add_format({"font_size":11}) for i in range(len(data)): for j in range(len(data[i])): worksheet.write(i, j, data[i][j], font) new_wb.close()
看完上述內容,你們掌握怎么在Python中對格式一致的Excel文件進行合并的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。