python讀取excel文件


python操作excel常用的庫包:

xlrd(主要做讀取操作)

xlwt(主要做寫入的操作)

xlutils(操作excel的工具)

openpyxl(可完成讀取、寫入、操作)。

本文寫的是通過openpyxl完成對excel的操作,openpyxl是一個Python庫,用於讀取/寫入Excel 2010 xlsx / xlsm / xltx / xltm文件。

官網文檔:https://openpyxl.readthedocs.io/en/stable/

1.通過python創建excel文件並將數據寫入

 1 # workbook = Workbook()         # 創建工作簿對象
 2 
 3 # sheet = workbook.active       # 得到sheet對象
 4 
 5 # # 將數據寫入 append接收一個可迭代對象
 6 # sheet.append(['A1', 'B1', 'C1'])
 7 
 8 # # 第二種寫入方式
 9 # sheet["B2"] = "這是B2"
10 
11 # # 遍歷數據寫入
12 # for i in range(1,5):
13 #     sheet[f"D{i}"] = "test"
14 
15 # # 保存創建的文件
16 # workbook.save("./source_file/test.xlsx")

 2.通過python打開已有的excel文件讀取並寫入數據

 1 #得到工作簿對象
 2 workbook = openpyxl.load_workbook("./source_file/test.xlsx") 
 3 # 獲取當前活動的sheet頁對象
 4 sheet = workbook.active
 5 # 獲取指定的sheet頁對象
 6 sheet1 = workbook["Sheet1"] 
 7 
 8 # 第一種讀取方式
 9 print(sheet["A1"].value)
10 # 第二種讀取方式: _get_cell(row,cloumn)
11 print(sheet._get_cell(1,1).value)
12 
13 # 寫入數據
14 sheet["F2"] = "F2"
15 
16 # 如果只讀取了數據可以直接關閉
17 workbook.close()
18 
19 # 有將數據更改或寫入需要保存文件
20 workbook.save("./source_file/test.xlsx")

3.更多的操作請參考官網文檔,下面提供一個封裝好的版本。

 1 class ExcelFile:
 2 
 3     def __init__(self, filepath):
 4         self.filepath = filepath
 5         self.workbook = openpyxl.load_workbook(filepath)
 6         self.sheet = self.workbook.active    # 默認創建當前活動的sheet頁對象
 7 
 8     def getSheet(self) -> list:
 9         """獲取所有Sheet頁"""
10         return self.workbook.sheetnames
11 
12     def setSheet(self, sheetName: str):
13         """設置Sheet頁"""
14         self.sheet = self.workbook[sheetName]
15 
16     def getCell(self, column: str, row):
17         """獲取指定的單元格對象"""
18         return self.sheet[column+ str(row)]
19 
20     def readCell(self, column: str, row=""):
21         """獲取指定的單元格值"""
22         return self.getCell(column, row).value
23 
24     def writeCell(self, column: str, row, value):
25         """給指定單元格寫入值"""
26         self.sheet[column + str(row)] = str(value)
27 
28     def clearCell(self, column: str, row):
29         """清空單元格的值"""
30         self.writeCell(column, row, "")
31 
32     def getMaxRow(self):
33         """獲取最大行"""
34         return self.sheet.max_row
35 
36     def getMaxColumn(self):
37         """獲取最大列"""
38         return self.sheet.max_column
39 
40     def saveFile(self):
41         self.workbook.save(self.filepath)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM