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')


