zoukankan      html  css  js  c++  java
  • python中使用xlrd、xlwt和xlutils3操作Excel

    简单试了下python下excel的操作,使用了xlrd、xlwt和xlutil3;xlrd可以实现excel的读取操作,xlwt则是写入excel操作,xlutils3主要是为了修改excel,简单理解可以拷贝已有excel进行修改,生成新的excel表格。
    安装包下载地址
    http://pypi.python.org/pypi/xlrd
    http://pypi.python.org/pypi/xlwt
    参考文档地址
    简单程序实例
    [python] view plain copy
     
    1. import xlrd  
    2. import xlwt  
    3. import xlutils3  
    4. from xlutils3 import copy  
    5. #测试xlwt  
    6. #创建新的excel文件  
    7. newfile = xlwt.Workbook()  
    8. #创建新的表单  
    9. #addsheet的格式add_sheet(sheetname, cell_overwrite_ok=False)  
    10. newsheet = newfile.add_sheet('test1',cell_overwrite_ok=True)  
    11. #索引从0,0开始  
    12. newsheet.write(0,0,'aaa')  
    13. newsheet.write(0,0,10)  
    14. newfile.save('firsttest.xls')  
    15.   
    16. #打开相应的excel文件  
    17. workbook = xlrd.open_workbook(r'firsttest.xls')  
    18. #找到相应的sheet  
    19. #可以通过index,index从0开始计算  
    20. #也可以通过sheet的名字   
    21. rdsheet = workbook.sheet_by_index(0)   
    22. rdsheet = workbook.sheet_by_name('test1')  
    23. print(rdsheet.cell(0,0))  
    24. #cell函数返回的是Cell 对象)包含ctype value xf_index  
    25. #输出number:10.0  
    26. print(rdsheet.cell(0,0).ctype)  
    27. #输出2?使用type查询结果为:<type 'member_descriptor'>具体含义?  
    28. print(rdsheet.cell(0,0).value)  
    29. #输出10.0  
    30. print(rdsheet.cell(0,0).xf_index)  
    31. #输出None  
    32.   
    33. rdbook = xlrd.open_workbook(r'firsttest.xls')  
    34. wtbook = copy.copy(rdbook)  
    35. wtsheet = wtbook.get_sheet(0)  
    36. type(wtsheet)  
    37. wtsheet.write(0,0,'aaaaa')  
    38. wtbook.save('bb.xls')  
    39.   
    40. newrdbook = xlrd.open_workbook(r'bb.xls')  
    41. print(newrdbook.sheet_by_name('test1').cell(0,0))  
    42. #输出text:'aaaaa'  
    43. print(rdbook.sheet_by_index(0).cell(0,0))  
    44. #输出number:10.0  
    关于cell_overwrite_ok参数使用
    [python] view plain copy
     
    1. newsheet = newfile.add_sheet('test1')  
    2. #索引从0,0开始  
    3. newsheet.write(0,0,'aaa')  
    4. newsheet.write(0,0,10)  
    5. newfile.save('firsttest.xls')  
    弹出错误:Exception: Attempt to overwrite cell: sheetname=u'test1' rowx=0 colx=0
    修改为不覆盖已经有赋值的单元格是可以操作的:
    [python] view plain copy
     
    1. newsheet = newfile.add_sheet('test1')  
    2. #索引从0,0开始  
    3. newsheet.write(0,0,'aaa')  
    4. newsheet.write(0,1,10)  
    如果需要覆盖已经操作的单元格,需要设置cell_overwrite_ok=True:
    [python] view plain copy
     
    1. newsheet = newfile.add_sheet('test1',cell_overwrite_ok=True)  
    2. #索引从0,0开始  
    3. newsheet.write(0,0,'aaa')  
    4. newsheet.write(0,0,10)  

    运行成功

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

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

    后续操作查询:

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

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

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

     
     
  • 相关阅读:
    无服务器架构(Faas/Serverless)
    Cookie中的sessionid与JSONP原理
    requestAnimationFrame
    JS函数的防抖和节流
    JS 中的广度与深度优先遍历
    堆、栈和队列
    Java除法和js
    selected
    找jar包
    编辑器替换操作
  • 原文地址:https://www.cnblogs.com/mapu/p/9067461.html
Copyright © 2011-2022 走看看