python excel操作
一.读操作--xlrd模块import xlrd
打开一个工作表
wkb=xlrd.open_workbook('test.xls')
获取sheet操作
wkb.sheet_names()
sheet=wkb.sheets()
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).value 第2行3列的值
sheet.col(2).value 第2行3列的值
示例一:
text.xls表格内容如下
zhzhgo25sister28brother30import xlrd
wbk=xlrd.open_workbook('test.xls')
#print wbk.sheet_names()
#print wbk.sheets()
#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
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文件内容样式如下:
zhzhgo25zhzhgo25 由于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文件内容如下,增加一行插入的数据:
zhzhgo25sister28brother30mother50
页:
[1]