Python辦公自動化之文件合併

假如公司須要統計每一個員工的我的信息,制定好模板後,由員工填寫,而後發送到綜合部進行彙總,在這種狀況下,若是公司有上百位員工的信息須要統計,且採用純手工進行復制粘貼的方式進行彙總,則將是一項耗時費力易錯的工做。本文主要以一個簡單的小例子,簡述如何經過Pyhton進行自動化文件合併。app

涉及知識點

  • xlrd模塊:文件的讀取
  • xlwt模塊:文件的生成

設計思路

  1. 獲取指定目錄下全部excel格式的文件。
  2. 循環讀取Excel文件內容【讀取固定的行與列】,將內容暫存內存中。
  3. 將內存中數據,寫入到新的Excel文件中,並保存到指定位置。

效果示例

本例爲了簡化操做,總共有10個須要彙總的文件,以下所示:spa

每個文件採用相同模板,格式一致,以下所示:設計

 

 彙總後的文件,以下所示:3d

核心代碼

引入相關的模塊,以下所示:excel

1 import xlrd
2 import xlwt
3 import os

讀取excel內容,以下所示:code

 1 def read_excel(excel_folder: str):
 2     """
 3     讀取Excel文檔
 4     :param excel_folder:
 5     :return:
 6     """
 7     excel_files = []  # excel文件列表
 8     excel_contents = []  # excel文件內容
 9     files = os.listdir(path=excel_folder)
10     if len(files) > 0:
11         for file in files:
12             if file.endswith('.xls'):
13                 excel_files.append(file)
14     if len(excel_files) == 0:
15         print('此目錄下沒有對應的Excel文件')
16     # 循環讀取文檔
17     for file in excel_files:
18         full_path = os.path.join(excel_folder, file)
19         book = xlrd.open_workbook(filename=full_path)
20         sheet = book.sheet_by_index(sheetx=0)
21         # 取固定位置的值
22         content = {
23             '名稱': sheet.cell_value(1, 0),
24             '年紀': sheet.cell_value(1, 1),
25             '性別': sheet.cell_value(1, 2),
26             '籍貫': sheet.cell_value(1, 3)
27         }
28         excel_contents.append(content)
29 
30     return excel_contents

生成Excel內容,以下所示:blog

 1 def write_excel(excel_path: str, excel_contents: list):
 2     """
 3     生成Excel文檔
 4     :param excel_path:
 5     :return:
 6     """
 7     if len(excel_contents) == 0:
 8         print('沒有須要保存的內容')
 9         return
10     book = xlwt.Workbook(encoding='utf-8')
11     sheet1 = book.add_sheet('統計信息')
12     # 先寫標題
13     sheet1.write(0, 0, '名稱')
14     sheet1.write(0, 1, '年紀')
15     sheet1.write(0, 2, '性別')
16     sheet1.write(0, 3, '籍貫')
17     i = 1
18     for content in excel_contents:
19         sheet1.write(i, 0, content['名稱'])
20         sheet1.write(i, 1, content['年紀'])
21         sheet1.write(i, 2, content['性別'])
22         sheet1.write(i, 3, content['籍貫'])
23         i += 1
24     book.save(excel_path)

總體調用內存

1 excel_folder = r'D:\MyProject\Demo01\TESTEXCEL'
2 excel_path = r'D:\MyProject\Demo01\TESTEXCEL\彙總信息.xls'
3 excel_contents = read_excel(excel_folder)
4 # print(excel_contents)
5 write_excel(excel_path, excel_contents)
6 print('done')

備註

相思utf-8

【做者】王維  【朝代】唐

紅豆生南國,春來發幾枝。文檔

願君多采擷,此物最相思。

相關文章
相關標籤/搜索