一.读操作--xlrd模块
import xlrd
打开一个工作表
wkb=xlrd.open_workbook('test.xls')
获取sheet操作
wkb.sheet_names()
sheet=wkb.sheets()[0]
sheet=wkb.sheet_by_index(0)
sheet=wkb.sheet_by_name('Sheet1')
sheet操作获取cell值的几种方法:
nrows=sheet.nrows 总行数
ncols=sheet.ncols 总列数
sheet.row_values(i) 第i行的值
sheet.col_values(i) 第i列的值
sheet.cell(1,2).value 第2行3列的值
sheet.cell_value(1,2) 第2行3列的值
sheet.row(1)[2].value 第2行3列的值
sheet.col(2)[1].value 第2行3列的值
示例一:
text.xls表格内容如下
zhzhgo |
25 |
sister | 28 |
brother | 30 |
import xlrd wbk=xlrd.open_workbook('test.xls') #print wbk.sheet_names() #print wbk.sheets()[0] #print wbk.sheet_by_index(0) st=wbk.sheet_by_name('Sheet1') print st.nrows #获取表格行数 print st.ncols #获取表格列数 print st.row_values(0) #第一行的数据 print st.col_values(0) #第一列的数据 print st.cell(0,0).value #第一行一列的数据
>>>
3
2
[u'zhzhgo', 25.0]
[u'zhzhgo', u'sister', u'brother']
zhzhgo
>>>
二.写操作--xlwt模块
import xlwt
wbk=xlwt.Workbook() 大写W
sheet=wbk.add_sheet('Sheet 1',cell_overwrite_ok=True)
sheet.write(0,1,'content')
wbk.save('test.xls') 只支持保存xls格式
自定义样式
style=xlwt.XFStyle()
font=xlwt.Font()
font.name='Times New Roman'
font.bold=True
style.font=font
sheet.write=(0,0,'content',style)
style1=xlwt.easyxf('pattern:pattern solid,fore_colour red;font:bold on;')
示例二:
import xlwt wbk=xlwt.Workbook() st=wbk.add_sheet('test',cell_overwrite_ok=True) #如果test存在则覆盖 st.write(0,0,'zhzhgo') st.write(0,1,25) style=xlwt.XFStyle() font=xlwt.Font() font.name='Times New Roman' font.bold=True #加粗 style.font=font style1=xlwt.easyxf('pattern:pattern solid,fore_colour red;font:bold on;') st.write(1,0,'zhzhgo',style) #设置字体样式 st.write(1,1,25,style1) #设置字体样式和背景颜色 wbk.save('test1.xls')
运行之后生成test1.xls文件内容样式如下:
zhzhgo | 25 |
zhzhgo | 25 |
由于xlwt每次保存的时候都会创建一个新的xls文件,如果文件不存在则创建,存在则覆盖,所以不能进行更新操作,python提供了更一个模块来进行excel的更新操作。
三.修改操作--xlutils模块
xlutils.copy
from xlutils import copy as xcopy
wkb_rd=xlrd.open_workbook('test.xls')
wkb_cp=xcopy.copy(wkb_rd) 拷贝一份xlrd到xlwt
sheet=wkb_cp.get_sheet(0)
sheet.write(row,col,value)
wkb_cp.save('test_cp.xls') 只支持保存xls格式
示例三:
import xlrd from xlutils import copy wkb_rd=xlrd.open_workbook('test.xls') wkb_cp=copy.copy(wkb_rd) sheet=wkb_cp.get_sheet(0) sheet.write(3,0,'mother') sheet.write(3,1,'50') wkb_cp.save('test.xls'
运行之后test.slx文件内容如下,增加一行插入的数据:
zhzhgo | 25 |
sister | 28 |
brother | 30 |
mother | 50 |