读写Excel文件.docx
文本预览下载声明
我们可以使用xlrd和xlwt库读写Excel文件。1)WorkSheet:表示Excel文档中的一个工作表。可通过Workbook.add_sheet()创建WorkSheet对象,通过get_sheet()获取已经存在的WorkSheet对象。2)Row:表示工作表中的一行,可使用Worksheet.row()创建或获取。3)Column:表示工作表中的一列,可使用Worksheet.col()创建或获取。4)Cell:通过Worksheet.write()或Row.write()可以直接写指定的单元格。1.写Excel文件(需要使用xlwt库)import numpy as npfrom xlwt import *book=Workbook()sheet1=book.add_sheet(u随机数)head=[normal,power,gamma,SUM]N=100data=np.vstack([ np.random.normal(size=N), np.random.power(a=1.0,size=N), np.random.power(0.9,size=N)])al=Alignment()al.horz=Alignment.HORZ_CENTERal.vert=Alignment.VERT_CENTERborders=Borders()borders.bottom=Borders.THICKstyle=XFStyle()style.alignment=alstyle.borders=bordersrow0=sheet1.row(0)#获得第一行for i,text in enumerate(head):#将标题写入第0行,使用所创建的样式 row0.write(i,text,style=style)#通过write()的style参数指定单元格的样式for i,line in enumerate(data):#写入随机数for j,value in enumerate(line): sheet1.write(j+1,i,value)for i in xrange(N):#写求和公式,注意公式中的单元格下标从1开始计数 sheet1.row(i+1).set_cell_formula(3,Formula(sum(A%s:C%s)%(i+2,i+2)),calc_flags=1)for i in xrange(4):#设置4列的宽度 sheet1.col(i).width=4000sheet1.row(0).height_mismatch=1#设置0行的高度sheet1.row(0).height=1000book.save(tmp.xls)xlwt和Utiles模块中有如下经常会用到的辅助函数:1)col_by_name():将列名转换为列的编号。2)cell_to_rowcol():将单元格的字符串表达式变换为行列编号,它返回一个包含4个元素的元组——(行编号,列编号,行是否为绝对坐标,列是否为绝对坐标)3)cell_to_rewcol2():和cell_to_rowcol()类似,但是只返回编号信息。4)rowcol_to_cell():和cell_to_rowcol()相反,将编号变换为字符串表达式。cellrange_to_rowcol_pair():将字符串表示的范围变换为一个包含4个元素的元组——(起始行号,起始列号,结束行号,结束列号)5)rowcol_pair_to_cellrange():和cellrange_to_rowcol_pair()相反。2.读Excel文件(需要使用xlrd库)from xlrd import open_workbookbook=open_workbook(tmp.xls)print(book.nsheets)#工作表的数目print(book.sheet_names()[0])#第一个工作表的名称sheet=book.sheets()[0]#获得第一个工作表print(sheet.cell(0,0))#读取A1的内容print(sheet.row(0))#读取第一行的内容print(sheet.cell(1,3))#读取公式单元格的值
显示全部