xlrd模块读取excel
处理流程
1. 导入模块 2. 打开Excel文件读取数据 3. 获取一个工作表 sheet = book.sheets()[0] #通过索引顺序获取 sheet = book.sheet_by_index(0) #通过索引顺序获取 sheet = book.sheet_by_name(u'Sheet1')#通过名称获取 4.获取整行和整列的值(数组) sheet.row_values(i) sheet.col_values(i) 5.获取行数和列数 nrows = sheet.nrows ncols = sheet.ncols 6.循环行列表数据 for i in range(nrows ): print table.row_values(i) 7.获取单元格 cell_A1 = table.cell(0,0).value cell_A1 = table.row(0)[0].value cell_C4 = table.cell(2,3).value cell_A2 = table.col(2)[3].value 8.简单的写入 row = 0 col = 0 # 类型 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error ctype = 1 value = '单元格的值' xf = 0 # 扩展的格式化 table.put_cell(row, col, ctype, value, xf) table.cell(0,0) #单元格的值' table.cell(0,0).value #单元格的值'
xlwt模块写入excel
处理流程
1. 导入xlwt模块 2. 新建一个excel文件 file = xlwt.Workbook() 3. 新建一个sheet table = file.add_sheet('sheet name') 4. 写入数据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) 5. 保存文件 file.save('demo.xls') 6.其它使用style style = xlwt.XFStyle() #初始化样式 font = xlwt.Font() #为样式创建字体 font.name = 'Times New Roman' font.bold = True style.font = font #为样式设置字体 table.write(0, 0, 'some bold Times text', style) # 使用样式 xlwt 允许单元格或者整行地设置格式。还可以添加链接以及公式。可以阅读源代码,那里有例子: dates.py, 展示如何设置不同的数据格式 hyperlinks.py, 展示如何创建超链接 (hint: you need to use a formula) merged.py, 展示如何合并格子 row_styles.py, 展示如何应用Style到整行格子中.
示例demo
# -*- coding:utf-8 -*- #!/usr/bin/python ''' Script Name : parsexls.py Author : svoid Created : 2015-02-25 Last Modified : Version : 1.0 Modifications : Description : 处理读写Excel ''' import xlrd #读取Excel import xlwt #写入Excel import codecs import os ''' Description :读取Excel内容并保存到文本文件中 @param textfilename:写入文本文件 @param xlsname :读取Excel文件 @return 无 ''' def readxls(excelName,textfilename): #打开Excel文件读取数据 book = xlrd.open_workbook(excelName) for i in range(len(book.sheets())): sheet = book.sheets()[i] nrows = sheet.nrows #读取工作页行数 ncols = sheet.ncols #读取工作页列数 for i in range(nrows): info = '' for j in range(len(sheet.row_values(i))): if isinstance(sheet.row_values(i)[j],(int,float,complex)): info += str(int(sheet.row_values(i)[j]))+'\t' else: info += sheet.row_values(i)[j]+'\t' print(info) saveFile(textfilename,info) ''' Description : 将数据按行保存到文件中 @param savefilename:保存文件内容文本文件 @param data :需要保存的数据 @return 无 ''' def saveFile(savefilename,data): f=codecs.open(savefilename,"a","utf-8") f.writelines(data) f.writelines('\n') f.close() ''' Description : 文本转换成Excel的函数 @param filename:输入文本文件 @param excelName :输出Excel文件 @return 无 ''' def txt2xls(filename,excelName): f = codecs.open(filename,'r','gbk') x = 0 y = 0 xls = xlwt.Workbook() sheet = xls.add_sheet('个人信息',cell_overwrite_ok=True) while True: line = f.readline() #读取文本行内容 print(line) if not line : break for i in line.split('\t'): item = i.strip() sheet.write(x,y,item) y += 1 x += 1 y = 0 f.close() #读取完成之后关闭文件 xls.save(excelName) if __name__ == '__main__': readxls("D:\\test.xlsx","D:\\test.txt") txt2xls("D:\\test1.txt","D:\\test1.xls")
整理自网络
svoid
2015-02-25
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29733787/viewspace-1441414/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29733787/viewspace-1441414/