python使用xlrd和xlwt读写excel,xlrdxlwt,传说中python操作m


传说中python操作ms office功能最强大的是win32com(据说只要人工能操作的它都能实现,未尝试尚不知道真假),不过对于比较简单的需求显得有些小题大作。那么来看下简单的,分别是xlrd和xlwt模块。

xlrd

可以使用easy_install xlrd命令来安装xlrd

简单使用

import xlrd#打开exceldata = xlrd.open_workbook('demo.xls') #注意这里的workbook首字母是小写#查看文件中包含sheet的名称data.sheet_names()#得到第一个工作表,或者通过索引顺序 或 工作表名称table = data.sheets()[0]table = data.sheet_by_index(0)table = data.sheet_by_name(u'Sheet1')#获取行数和列数nrows = table.nrowsncols = table.ncols#获取整行和整列的值(数组)table.row_values(i)table.col_values(i)#循环行,得到索引的列表for rownum in range(table.nrows):print table.row_values(rownum)#单元格cell_A1 = table.cell(0,0).valuecell_C4 = table.cell(2,3).value#分别使用行列索引cell_A1 = table.row(0)[0].valuecell_A2 = table.col(1)[0].value#简单的写入row = 0col = 0ctype = 1 # 类型 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 errorvalue = 'lixiaoluo'xf = 0 # 扩展的格式化 (默认是0)table.put_cell(row, col, ctype, value, xf)table.cell(0,0) # 文本:u'lixiaoluo'table.cell(0,0).value # 'lixiaoluo'

xlwt

http://pypi.python.org/pypi/xlrd

简单使用

#导入xlwtimport xlwt#新建一个excel文件file = xlwt.Workbook() #注意这里的Workbook首字母是大写,无语吧#新建一个sheettable = file.add_sheet('sheet name')#写入数据table.write(行,列,value)table.write(0,0,'test')#如果对一个单元格重复操作,会引发#returns error:# Exception: Attempt to overwrite cell:# sheetname=u'sheet 1' rowx=0 colx=0#所以在打开时加cell_overwrite_ok=True解决table = file.add_sheet('sheet name',cell_overwrite_ok=True)#保存文件file.save('demo.xls')#另外,使用stylestyle = xlwt.XFStyle() #初始化样式font = xlwt.Font() #为样式创建字体font.name = 'Times New Roman'font.bold = Truestyle.font = font #为样式设置字体table.write(0, 0, 'some bold Times text', style) # 使用样式

xlwt 允许单元格或者整行地设置格式。还可以添加链接以及公式。可以阅读源代码,具体的例子可以看:

http://scienceoss.com/write-excel-files-with-python-using-xlwt/

评论关闭