Pyhton3操作Excel
Pyhton3操作Excel
python读写excel的方式有很多,不同的模块在读写的讲法上稍有区别: xlrd和xlwt进行excel读写; openpyxl进行excel读写; pandas进行excel读写;
准备工作:
python3.8, 下载安装对应库
xlrd读和xlwt写 pip install xlrd
pip install xlwt
openpyxl读写
pip install openpyxl
pandas读写
pip install pandas
show code import xlrd import os import xlwt import openpyxl import pandas class excelUtil(): """ fulFileName 文件全路径 index sheet页码 从0开始 """ def readWithWlrd(self, fulFileName, index): if index is None: index = 0 if type(index) != int: return "wrong index must be int" # 获取excel 路径 # xlrd.biffh.XLRDError: Excel xlsx file; not supported # xlrd更新到了2.0.1版本,只支持.xls文件 # pip uninstall xlrd # pip install xlrd==1.2.0 book = xlrd.open_workbook(fulFileName) print(len(book.sheets())) sheet1 = book.sheets()[index] nrows = sheet1.nrows print("表格总行数", nrows) ncols = sheet1.ncols print("表格总列数", ncols) row3_values = sheet1.row_values(2) print("第3行值", row3_values) col3_values = sheet1.col_values(2) print("第3列值", col3_values) cell_3_3 = sheet1.cell(2, 2).value print("第3行第3列的单元格的值:", cell_3_3) def writeWithWlwt(self): workbook = xlwt.Workbook() worksheet = workbook.add_sheet("test") worksheet.write(0, 0, "非鸽传书") workbook.save("test.xls") def readExcelByOpenpyxl(self, fullFileName, sheetName): if sheetName is None: sheetName = "Sheet1" workbook = openpyxl.load_workbook(fullFileName) worksheet = workbook.get_sheet_by_name(sheetName) row3 = [item.value for item in list(worksheet.rows)[2]] print("第3行值", row3) col3 = [item.value for item in list(worksheet.columns)[2]] print("第3行值", col3) cell_2_3 = worksheet.cell(row=2, column=3).value print("第2行第3列值", cell_2_3) max_row = worksheet.max_row print("最大行", max_row) if __name__ == "__main__": util = excelUtil() # 这里自己准备一个文件,使用绝对路径或者相对路径 fullFileName = "..." ## xlrd读excel xlwt写excel sheet = util.readWithWlrd(fullFileName, 0) util.writeWithWlwt() print("------------Openpyxl begin ------------") util.readExcelByOpenpyxl(fullFileName, None) print("--------- pandas begin ---------------") df = pandas.read_excel(r"data.xlsx",sheetname=0) print(df.head())
over~
水一篇
老规矩,求三连,图片侵权删