• Excel文件处理之xlrd、xlwt、xlutils、openpyxl


     

    1读excel要用到xlrd模块(支持xls、xlsx)
    import xlrd
    filename="C:/Users/11/Desktop/2.xlsx"
    book = xlrd.open_workbook(filename) #打开Excel文件读取数据
    sheet =book.sheets()[0] #指定工作表
    print book.nsheets #获取sheet总数
    print sheet.nrows  #获取行数
    print sheet.ncols   #获取列数
    print(sheet.cell(1,2)) #获取单元格2行3列的值
    print(sheet.row_values(0))   #获取第1行的值(返回数组)
    print(sheet.col_values(0))    #获取第1列的值(返回数组)
     
    指定工作表的三种方式:
    sheet = book.sheets()[0]  
    sheet = book.sheet_by_index(0)
    sheet = book.sheet_by_name('Sheet1') #有的资料显示(u'Sheet1'),测试两种均可
     
     
     
    2写excel要用到xlwt模块(支持xls)
    import xlwt
    book = xlwt.Workbook(encoding = 'ascii')  #创建workbook
    sheet = book.add_sheet('sheet1')   #创建表
    sheet.write(1, 2, label = 'hello') #往单元格2行3列写入内容
    book.save("C:/Users/11/Desktop/temp/3/3.xls") #保存
     
    encoding和label要对应:
    比如encoding = 'utf8' 对应 label = '你好',encoding = 'ascii' 对应 label = 'hello'。
    如果encoding = 'ascii' 对应 label = '你好' 则会报错: 'ascii' codec can't decode byte 0xe5 in position ......
     
    文件保存路径:
    可以是相对路径,也可以是绝对路径。
    如果路径中的文件夹不存在则报错: No such file or directory......
    如果文件不存在会自动创建,已存在会覆盖处理(覆盖整个文件,不仅仅是sheet或者单元格)。
     
     
     
    3修改excel可以用xlutils、openpyxl模块
    3.1xlutils(支持xls)
    import  xlrd
    from xlutils.copy import copy
    workbook=xlrd.open_workbook('3.xls')  
    workbooknew=copy(workbook) #copy:将xlrd.Book转为xlwt.Workbook。
    ws=workbooknew.get_sheet(0)  #注意此处用的是get_sheet,不同于xlrd模块指定工作表的三种方式。
    ws.write(0,1,"changed12345")
    workbooknew.save("3copy.xls")
     
    xlutils是一个工具模块,一般只用到copy模块,用于修改另存Excel文件。具体实现步骤是:将需要更改的excel文件打开,用xlutils包的copy将excel文件拷贝一份,然后进行修改操作,最后保存。实际是在xlrd.Book和xlwt.Workbook之间建立了一个管道而已。
    所以,xlutils修改当前文件的方法就是,最后保存的时候文件名同原名,即替换原文件:workbooknew.save("3.xls")。
     
    xlutils也可以对xlsx格式进行操作,但是最后保存只支持xls格式。
     
    3.2openpyxl(支持xlsx)
    from openpyxl import load_workbook
    book = load_workbook('333.xlsx')
    sheet=book.get_sheet_by_name('Sheet2')
    sheet['A1']='hello'
    sheet['A5']=123
    book.save('333.xlsx')
     
    同xlutils相比好像只是少了copy环节,语法稍有不同,最后也是保存为同名文件才达到修改当前文件的目的。
     
    如果load_workbook('3.xls')程序报错:InvalidFileException: openpyxl does not support the old .xls file format, please use xlrd to read this file, or convert it to the more recent .xlsx file format.
     
     
     
     
    注意
    现在已经Office2019了,如果还只支持2003版的xls格式就会被人抛弃。后面还有更便利的库推出。
     
    在Excel中内容尾部存在若干个空格时,可能是人为产生,VBA会自动去重尾部空格,Python不会,需要strip()处理。
     
    https://cloud.tencent.com/developer/article/1191080 **
     
     
  • 相关阅读:
    ListView添加HeaderView的顺序问题
    shape与selector配合使用实现Tab下划线效果
    在java代码中设置TextView的字体大小,单位设为sp
    一个textView中的文字设置成两种颜色
    Android studio生成类图
    linux常用命令总结
    主机CPU与显卡选择
    电脑与显示器四种接口
    Linux shell
    Linux 常用命令二
  • 原文地址:https://www.cnblogs.com/myshuzhimei/p/11757147.html
Copyright © 2020-2023  润新知