Python操作Excel (xlrd & xlwt模块)
xlrd
是用来从Excel中读写数据的,但我们通常只用它进行读操作,写操作会相对于专门写入的模块麻烦一些。其实,后面的rd可以看出是reader的缩小。
类比于xlrd
的reader,那么xlwt
就相对于writer,而且很纯正的一点就是它只能对Excel进行写操作。xlwt和xlrd不光名字像,连很多函数和操作格式也是完全相同。下面让我们慢慢介绍。
xlrd
:可以对xlsx、xls、xlsm文件进行读操作且效率高xlwt
:主要对xls文件进行写操作且效率高,但是不能执行xlsx文件
安装与使用
pip install xlrd==1.2.0 #版本过高会报错 pip install xlwt
xlrd常用操作详解
先准备一份Excel文件test.xlsx ,大致如下图:
1.打开Excel文件
import xlrd workbook = xlrd.open_workbook('test.xlsx')
2.查看工作簿中所有sheet
import xlrd workbook = xlrd.open_workbook('test.xlsx') print(workbook.sheet_names())
3.选择某一个工作表sheet
import xlrd workbook = xlrd.open_workbook('test.xlsx') # sheet=workbook.sheets()[0] # 获取第一个工作表 # sheet=workbook.sheet_by_index(0) # 通过索引获取第一个工作表 sheet=workbook.sheet_by_name('openpyxl测试') # 通过工作表的名字获取
4. 获取表格的行数和列数
import xlrd workbook = xlrd.open_workbook('test.xlsx') sheet=workbook.sheet_by_name('openpyxl测试') # 通过工作表的名字获取 row=sheet.nrows col=sheet.ncols print("行数:%s,列数:%s"%(row,col))
5.获取整行和整列的值
import xlrd workbook = xlrd.open_workbook('test.xlsx') sheet=workbook.sheet_by_name('openpyxl测试') # 通过工作表的名字获取 row1 = sheet.row_values(0) # 0代表第一行,以此类推 col1 = sheet.col_values(0) # 0代表第一列,以此类推 print("第一行内容:",row1) print("第一列内容:",col1)
6.通过循环读取表格的所有行
import xlrd workbook = xlrd.open_workbook('test.xlsx') sheet=workbook.sheet_by_name('openpyxl测试') # 通过工作表的名字获取 for i in range(sheet.nrows): print (sheet.row_values(i))
7.通过循环读取表格的所有列
import xlrd workbook = xlrd.open_workbook('test.xlsx') sheet=workbook.sheet_by_name('openpyxl测试') # 通过工作表的名字获取 for i in range(sheet.ncols): print (sheet.col_values(i))
import xlrd workbook = xlrd.open_workbook('test.xlsx') sheet=workbook.sheet_by_name('openpyxl测试') # 通过工作表的名字获取 cell1=sheet.row(0)[0].value # 通过调取指定行数据进行筛选 cell2=sheet.cell(0,0).value # 通过二维的形式获取,即(第i行,第j列)形式 cell3=sheet.col(0)[0].value # 通过调取指定列数据进行筛选 print(cell1,cell2,cell3)
xlwt常用操作详解
1.新建一个Excel文件
import xlwt workbook = xlwt.Workbook('test2.xlsx')
2.新建一个工作表
import xlwt workbook = xlwt.Workbook('test2.xlsx') sheet = workbook.add_sheet('测试',cell_overwrite_ok=True)
3.写入数据到指定单元格
import xlwt workbook = xlwt.Workbook('test2.xlsx') sheet = workbook.add_sheet('测试',cell_overwrite_ok=True) sheet.write(0,0,'Python')
4.保存文件
import xlwt workbook = xlwt.Workbook('test2.xls') sheet = workbook.add_sheet('测试',cell_overwrite_ok=True) sheet.write(0,0,'Python') workbook.save('test2.xls')
5.改变样式
import xlwt workbook = xlwt.Workbook('test2.xls') sheet = workbook.add_sheet('测试',cell_overwrite_ok=True) style=xlwt.XFStyle() font=xlwt.Font() font.name='name Times New Roman' font.bold=True style.font=font sheet.write(0,1,'Python',style) #第一行代码是初始化样式,可以认为是一个类似于父类的东西。 #第二行代码是为样式创建字体 #第三行代码是指定字体的名字,这里用到的是name Times New Roman这个类型。 #第四行代码是字体加粗,以布尔值的形式的设定。 #第五行代码是将font设定为style的字体 #第六行代码是写入文件单元格时怎么运用这个格式。 workbook.save('test2.xls')