• xlutils模块


    xlutils.copy

    这个模块中的函数xlrd副本。书成xlwt对象。工作簿对象,这样他们就可以被操控。您可能希望这样做,例如,如果您有一个现有的excel文件,你想改变一些单元格内容

    1、首先,你需要利用 xlrd 模块,打开文件:

    from xlrd import open_workbook
    
    rb=open_workbook("new1.xlsx")
    rs=rb.sheet_by_index(0)
    print(rs.cell(0,0).value)
    print(rs.cell(0,1).value)
    

      结果:

    "D:Program Files (x86)python36python.exe" F:/python从入门到放弃/8.17/xlutils_mudol.py
    姓名
    学号

    2、然后,你需要用 xlutils 模块中的 copy 方法,去复制 xlrd.Book 对象称为 xlwt.Workbook 对象

    from xlutils.copy import copy
    
    wb=copy(rb)
    
    1 from xlrd import open_workbook
    2 from xlutils.copy import copy
    3 
    4 rb=open_workbook("new1.xlsx")#实例化工作簿对象
    5 rs=rb.sheet_by_index(0)#实例化工作簿对象中的表格对象
    6 # print(rs.cell(0,0).value)
    7 # print(rs.cell(0,1).value)
    8 wb=copy(rb)##复制实例化工作簿对象成 xlwt的工作簿对象

    现在,你已经相当于有了一个  xlwt.Workbook 对象, 你可以修改单元格并且根据需要把修改后的表格文件保存回去。

    >>> wb.get_sheet(0).write(0,0,'changed!')
    >>> wb.save(join(temp_dir.path,'output.xls'))
    >>> temp_dir.listdir()
    output.xls
    

      

     1 from xlrd import open_workbook
     2 from xlutils.copy import copy
     3 
     4 rb=open_workbook("new1.xlsx")#实例化工作簿对象
     5 rs=rb.sheet_by_index(0)#实例化工作簿对象中的表格对象
     6 print(rs.cell(0,0).value)
     7 print(rs.cell(0,1).value)
     8 uwb=copy(rb)##复制实例化工作簿对象成 xlwt的工作簿对象
     9 urs=uwb.get_sheet(0)
    10 urs.write(0,0,"内容已经改变!")
    11 uwb.save("new2.xls")

    OK!!现在你就可以打开保存的文件查看内容了。

    你也可以用  xlrd  模块去读取文件,查看改变后的内容。

    >>> rb = open_workbook(join(temp_dir.path,'output.xls'))
    >>> rb.sheet_by_index(0).cell(0,0).value
    u'changed!'
    >>> rb.sheet_by_index(0).cell(0,1).value
    u'R0C1'
    

      

     1 #!/usr/bin/env python3
     2 #-*- coding:utf-8 -*-
     3 '''
     4 Administrator 
     5 2018/8/17 
     6 '''
     7 from xlrd import open_workbook
     8 from xlutils.copy import copy
     9 
    10 # rb=open_workbook("new1.xlsx")#实例化工作簿对象
    11 # rs=rb.sheet_by_index(0)#实例化工作簿对象中的表格对象
    12 # print(rs.cell(0,0).value)
    13 # print(rs.cell(0,1).value)
    14 # uwb=copy(rb)##复制实例化工作簿对象成 xlwt的工作簿对象
    15 # urs=uwb.get_sheet(0)
    16 # urs.write(0,0,"内容已经改变!")
    17 # uwb.save("new2.xls")
    18 
    19 new_rb=open_workbook("new2.xls")
    20 new_rs=new_rb.sheet_by_index(0)
    21 print(new_rs.cell(0,0).value)

    结果:

    "D:Program Files (x86)python36python.exe" F:/python从入门到放弃/8.17/xlutils_mudol.py
    内容已经改变!

     注意:我在测试的时候,发现保存的文件可以保存为 .xls 格式。不能保存为 .xlsx 格式。个人猜测应该是兼容的问题。

      在使用中应该竟可能的使用参数: on_demand=True  ,这样可以竟可能多的节约内存。

       formatting_info=True  :读取文件的格式。包括背景色,字体等信息

    rb=open_workbook("new1.xlsx",on_demand=True)#实例化工作簿对象
    

      

    来源:https://xlutils.readthedocs.io/en/latest/copy.html 官网


    xlutils.display

    这个模块包含两个函数 quoted_sheet_name() 和  cell_display() ,它们让你容易和安全的显示通过 xlrd 读取的信息。

  • 相关阅读:
    DevExpress ASP.NET Core Controls 2019发展蓝图(No.6)
    DevExpress v18.2版本亮点——Analytics Dashboard篇(二)
    VS插件CodeRush for Visual Studio发布v18.2.9|附下载
    DevExpress 2019 .NET产品现已完全支持Visual Studio 2019
    DevExpress v18.2版本亮点——Analytics Dashboard篇(一)
    Java开发神器——MyEclipse CI 2019.4.0 全新发布(附下载)
    DevExpress ASP.NET Core Controls 2019发展蓝图(No.5)
    JS原型链中的prototype与_proto_的个人理解与详细总结
    ASP.NET Core中的依赖注入(5):ServicePrvider实现揭秘【补充漏掉的细节】
    ASP.NET Core中的依赖注入(5): ServiceProvider实现揭秘 【解读ServiceCallSite 】
  • 原文地址:https://www.cnblogs.com/Mengchangxin/p/9492796.html
Copyright © 2020-2023  润新知