python的excel操作:需要三个模块:xlrd ,xlwt ,xlutils
一、xlrd ,python读取Excel模块 ,不能用于写入
#获取excel的workfile对象
xlsfile = r'C:\Users\LP0443\Desktop\V4.1\V4.1\V4.1cpuNmemory.xls'
workfile = xlrd.open_workbook(xlsfile)
#获取excel的sheet对象,可以通过sheet名字或者索引来获取
sheet = workfile.sheet_by_name(sheet_name)
sheet = workfile.sheet_by_index(0)
#获取指定索引的sheetname
sheetname = workfile.sheet_names()[0]
#获取行列总数
nrows = sheet.nrows
ncols = sheet.ncols
#获取指定行、列的值,返回对象为一个值的列表
row_data = sheet.row_values(0)
col_data = sheet.col_values(0)
#通过cell的位置坐标获得指定的cell的值
cell_value = sheet.cell_value(0,1)
二、xlwt模块 此模块只允许写入 无法读取
import xlwt
workbook = xlwt.Workbook(encoding='utf-8',style_compression=0)
#给excel新增一个名为sheetname的sheet
sheet = workbook.add_sheet('sheetname',cell_overwrite_ok=true)
##在excel的第一行第一列写入“i love you” ,注意 excel行列是从0开始的
sheet.write(0,0,"i love you " )
style = xlwt.XFStyle()
font = xlwt.Font()
font.name = 'Times New Roman'
font.bold = True
style.font = font
workbook.save('D:\test.xls')
xlwt 的一些常用的方法以及属性:
Workbook类初始化时有encoding和style_compression参数。
encoding,设置字符编码,一般要这样设置:w = Workbook(encoding='utf-8'),就可以在excel中输出中文了。默认是ascii。当然要记得在文件头部添加:
style_compression表示是否压缩,不常用。
除了Workbook外,还有一些属性:
Owner设置文档所有者。
country_code:国家码
wnd_protect:窗口保护
obj_protect:对象保护
Protect:保护
backup_on_save:保存时备份
Hpos:横坐标
Vpos:纵坐标
Width:宽度
Height:高度
active_sheet:活动sheet
tab_width:tab宽度
wnd_visible:窗口是否可见
wnd_mini:窗口最小化
hscroll_visible:横向滚动条是否可见。
vscroll_visible:纵向滚动条是否可见。
tabs_visible:tab是否可见。
dates_1904:是否使用1904日期系统
use_cell_values:单元格的值
default_style:默认样式
colour_RGB:颜色
方法有:add_style,add_font,add_str,del_str,str_index,add_rt,rt_index,add_sheet,get_sheet,raise_bad_sheetname,
convert_sheetindex,setup_xcall,add_sheet_reference。
三、xlutils 修改excel
Python中一般使用xlrd(excel read)来读取Excel文件,使用xlwt(excel write)来生成Excel文件(可以控制Excel中单元格的格式),需要注意的是,用xlrd读 取excel是不能对其进行操作的:xlrd.open_workbook()方法返回xlrd.Book类型,是只读的,不能对其进行操作。而 xlwt.Workbook()返回的xlwt.Workbook类型的save(filepath)方法可以保存excel文件。因此对于读取和生成Excel文件都非常容易处理,但是对于已经存在的Excel文件进行修改就比较麻烦了。不过,还有一个xlutils(依赖于xlrd和xlwt)提供复制excel文件内容和修改文件的功能。其实际也只是在xlrd.Book和xlwt.Workbook之间建立了一个管道而已,如下图:
from xlrd import open_workbook
from xlutils.copy import copy
rb = open_workbook('m:\\1.xls')
#通过sheet_by_index()获取的sheet没有write()方法
rs = rb.sheet_by_index(0)
wb = copy(rb)
#通过get_sheet()获取的sheet有write()方法
ws = wb.get_sheet(0)
ws.write(0, 0, 'changed!')
wb.save('m:\\1.xls')
整理来自于:http://blog.csdn.net/tianzhu123/article/details/7225809
http://blog.csdn.net/five3/article/details/7034826