python读写excel的方式有很多,不同的模块在读写的讲法上稍有区别:
用xlrd和xlwt进行excel读写;
用openpyxl进行excel读写;
用pandas进行excel读写;
为了方便演示,我这里新建了一个data.xlsx文件,第一个工作表sheet1区域“A1:F5”的内容如下,用于测试读excel的代码:
1 利用xlrd和xlwt进行excel读写(xlwt不支持xlsx)
首先是安装第三方模块xlrd和xlwt,直接输入命令"pip install xlrd"和"pip install xlwt"就行,如下(cmd→CD→c:pythonscripts):
1.1 xlrd读excel
import xlrd
book = xlrd.open_workbook(\'data.xlsx\')
sheet1 = book.sheets()[0]
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)
运行结果
表格总行数 5
表格总列数 5
第3行值 [\'3A\', \'3B\', \'3C\', \'3D\', \'3F\']
第3列值 [\'1C\', \'2C\', \'3C\', \'4C\', \'5C\']
第3行第3列的单元格的值: 3C
1.2 xlwt写excel
主要代码如下,很简单:
import xlwt # 貌似不支持excel2007的xlsx格式
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet(\'test\')
worksheet.write(0,0,\'A1data\')
workbook.save(\'excelwrite.xls\')
程序运行后,新建excelwrite.xls工作簿并插入text工作表,A1的内容为A1data。
2 利用openpyxl读写excel,注意这里只能是xlsx类型的excel
安装的话,直接输入命令"pip install openpyxl"就行,很快就能安装完毕。
2.1 读excel
import openpyxl
workbook = openpyxl.load_workbook(\'data.xlsx\')
worksheet = workbook.get_sheet_by_name(\'Sheet1\')
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)
运行结果:
第3行值 [\'3A\', \'3B\', \'3C\', \'3D\', \'3F\']
第3行值 [\'1C\', \'2C\', \'3C\', \'4C\', \'5C\']
第2行第3列值 2C
最大行 5
2.2 写excel
主要代码如下:
import openpyxl
workbook = openpyxl.Workbook()
sheet=workbook.active
sheet[\'A1\']=\'hi,wwu\'
workbook.save(\'new.xlsx\')
程序运行后,新建new.xls工作簿并插入sheet工作表,A1的内容为hi,wwu。
3 利用pandas读取excel
Pandas的名称来自于面板数据(panel data)和python数据分析(data analysis)。
首先要安装pandas模块,相对来说,安装pandas模块要复杂一些。
如果用pip install pandas安装后运行出错,可以考虑安装以前的版本:pip install pandas==0.22
pandas是一个数据处理的包,本身提供了许多读取文件的函数,像read_csv(读取csv文件),read_excel(读取excel文件)等,只需一行代码就能实现文件的读取
pd.read_excel(io, sheet_name=0, header=0, names=None, index_col=None,
3.1 读excel
主要代码如下,就1行代码搞定,注意这里的data是DataFrame类型:
import pandas as pd
df = pd.read_excel(r\'data.xlsx\',sheetname=0)
print(df.head())
运行结果:
1A 1B 1C 1D 1F
0 2A 2B 2C 2D 2F
1 3A 3B 3C 3D 3F
2 4A 4B 4C 4D 4F
3 5A 5B 5C 5D 5F
3.2 写excel
主要代码如下:
from pandas import DataFrame
data={
\'name\':[\'张三\',\'李四\',\'王五\'],
\'age\':[11,12,13]
\'sex\':\'男\',\'女\',\'男\']
}
df=DataFrame(data)
df.to_excel(\'new.xlsx")
程序运行后,将新建(或替换)new.xlsx文件,并在工作表sheet1的A1:D4区域中保存内容如下:
至此,我们就完成了excel的读写。总的来说,这3种方法都很简单,尤其是第3种方法,1行代码就搞定,在数据处理中,经常会用到pandas这个包(该包可以处理众多常见的数据存储格式,如CSV、JSON等),功能很强大,当然还有许多其他的包也可以完成excel的读写
作者:小天真_5eeb
链接:https://www.jianshu.com/p/19219542bf23
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。