python 文件持久化Excel

xiaoxiao2021-02-28  35

xlrd可以实现excel的读取操作,xlwt则是写入excel操作,xlutils3主要是为了修改excel,简单理解可以拷贝已有excel进行修改,生成新的excel表格。

 

import xlrd  import xlwt  import xlutils3  from xlutils3 import copy  #测试xlwt  #创建新的excel文件  newfile = xlwt.Workbook()  #创建新的表单  #addsheet的格式add_sheet(sheetname, cell_overwrite_ok=False)  newsheet = newfile.add_sheet('test1',cell_overwrite_ok=True)  #索引从0,0开始  newsheet.write(0,0,'aaa')  newsheet.write(0,0,10)  newfile.save('firsttest.xls')    #打开相应的excel文件  workbook = xlrd.open_workbook(r'firsttest.xls')  #找到相应的sheet  #可以通过index,index从0开始计算  #也可以通过sheet的名字   rdsheet = workbook.sheet_by_index(0)   rdsheet = workbook.sheet_by_name('test1')  print(rdsheet.cell(0,0))  #cell函数返回的是Cell 对象)包含ctype value xf_index  #输出number:10.0  print(rdsheet.cell(0,0).ctype)  #输出2?使用type查询结果为:<type 'member_descriptor'>具体含义?  print(rdsheet.cell(0,0).value)  #输出10.0  print(rdsheet.cell(0,0).xf_index)  #输出None    rdbook = xlrd.open_workbook(r'firsttest.xls')  wtbook = copy.copy(rdbook)  wtsheet = wtbook.get_sheet(0)  type(wtsheet)  wtsheet.write(0,0,'aaaaa')  wtbook.save('bb.xls')    newrdbook = xlrd.open_workbook(r'bb.xls')  print(newrdbook.sheet_by_name('test1').cell(0,0))  #输出text:'aaaaa'  print(rdbook.sheet_by_index(0).cell(0,0))  #输出number:10.0  

关于cell_overwrite_ok参数使用

 

newsheet = newfile.add_sheet('test1')  #索引从0,0开始  newsheet.write(0,0,'aaa')  newsheet.write(0,0,10)  newfile.save('firsttest.xls')  

弹出错误:Exception: Attempt to overwrite cell: sheetname=u'test1' rowx=0 colx=0

修改为不覆盖已经有赋值的单元格是可以操作的:

 

newsheet = newfile.add_sheet('test1')  #索引从0,0开始  newsheet.write(0,0,'aaa')  newsheet.write(0,1,10) 

如果需要覆盖已经操作的单元格,需要设置cell_overwrite_ok=True:

 

newsheet = newfile.add_sheet('test1',cell_overwrite_ok=True)  #索引从0,0开始  newsheet.write(0,0,'aaa')  newsheet.write(0,0,10)  

如何在python扩展查询需要的信息

如:当最初只知道使用newfile = xlwt.Workbook();创建一个新的文件时;

后续操作查询:

可以通过type(newfile)得到类型<class 'xlwt.Workbook.Workbook'>;

然后时候使用help(xlwt.Workbook)查询Workbook对应的接口,当然使用help(newfile)也是可以的;

如此往复找到需要的细节信息;

 

转载请注明原文地址: https://www.6miu.com/read-2625659.html

最新回复(0)