Python-操作excel:xlrd与write写操作
xlrd是python对excel进行读操作的库,下面介绍它的具体用法:
比如,我要打开当前*.py文件下的“测试.xls”文件,并对该文档进行操作
0 测试.xls文件内容
1.打开excel
import xlrd
file_name = "./测试.xls"
openfile = xlrd.open_workbook(file_name,formatting_info = True)
#后续对openfile的操作,都是直接在该文档上进行的
#如果想将“测试.xls”作为一个模板,去操作副本并保存,需要拷贝一个该文件的副本,对该副本进行操作
import xlutils.copy
#此时,wb为将"./测试.xls"保存为一个副本,需要先保存后,在打开该文件进行操作
wb = xlutils.copy.copy(openfile)
#保存时,可以更改副本文件的路径和名称
file_name2 = "./test/测试2.xls"
wb.save(file_name2)
2.获取excel的内容
获取excel内容包括很多方法,此处用表格做总结
方法名 | 作用 |
---|---|
sheet_names() | 获取打开的excel文件的所有sheet名称,返回sheet名称的列表 |
sheet_by_name(sheet_name=“sheet名称”) | 通过名称获取exce中的sheet,并对该sheet进行读操作 |
sheet_by_index(num) 其中,num=0,1,2… | 通过sheet的index,对sheet进行读操作 |
get_sheet(“sheet名称”) | 通过名称获取exce中的sheet,并对该sheet进行写操作 |
cell_value(rowx=, colx=) | 通过行(rowx)列(colx)获取单元格的内容 |
write(rowx, colx,“写入内容”) | 往excel中行(rowx)列(colx)对应的单元格写入数据 |
nrows | 获取该sheet有多少行数据 |
ncols | 获取该sheet有多少列数据 |
下面是具体的代码示例:
import xlrd
import xlutils.copy
file_name = "./测试.xls"
openfile = xlrd.open_workbook(file_name,formatting_info=True)
sheetnames = openfile.sheet_names() #获取文件的sheet_names,需要使用最初的文件句柄
print(sheetnames) # 打印出 ['0. 首页', '1. 目录', '2. 第一章', '3. 图片']
wb_sheet1 = openfile.sheet_by_name(sheet_name="1. 目录")
wb_sheet2 = openfile.sheet_by_index(2) #sheet从0计数
date1=wb_sheet1.cell_value(0,0)
date2 = wb_sheet2.cell_value(0,2)
date1_row = wb_sheet1.nrows
date1_col = wb_sheet1.ncols
print(date1) #打印 该sheet的名称为“1. 目录”
print(date2) #打印 20.0
print(date1_row) # 打印1
print(date1_col) # 打印1
#对进行写入数据,要采用get_sheet获取sheet,然后在写入数据,上面的方法只能读取数据
wb = xlutils.copy.copy(openfile)
wb_sheet0 = openfile.get_sheet("0. 首页")
wb_sheet0.write(8,2,"xingyu")
wb_sheet0.write(9,2,"九年级一班")
wb.save(file_name) #写入完所有数据后,需要保存,才能生效