zoukankan      html  css  js  c++  java
  • python excel 处理 xlrd & xlwt &xlutils

    python excel 处理

     

    方案一 xlrd & xlwt &xlutils

     

    使用xlrd 用来读取 xls 文件

    xlrd --> xls read

     

    安装

    pip install xlrd

     

    使用

    import xlrd

    book = xlrd.open_workbook("myfile.xls") # 创建读取xls 对象

    print("表格文件的sheet页有 {0}".format(book.nsheets))
    print("表格文件的sheet页名: {0}".format(book.sheet_names()))
    sh = book.sheet_by_index(0) # 选择第一页操作
    print("{0} {1} {2}".format(sh.name, sh.nrows, sh.ncols))

    for rx in range(sh.nrows): # 按行读取
       print(sh.row(rx))
       
    for row in range(sh.nrows):  # 按单元格读取
       for col in ncols range(sh.ncols)
      print("单元格 内容 {0}".format(sh.cell_value(rowx=row, colx=col)))

     

    注意

    不支持以下内容

    图表、宏、图片、任何其他嵌入式对象,包括嵌入式工作表。

    VBA模块

    公式,但会提取公式计算的结果。

    评论

    超链接

    自动筛选、高级筛选、透视表、条件格式、数据验证

    不支持受密码保护的文件,此库无法读取这些文件。

     

    1.2.0 1.2.0 1.2.0 以上的版本不支持读取xlsx了很奇怪

    image-20220113143140310

    2020 的更新中这个库去除了对xls 以外格式的支持而1.2 版本只能支持python3.7

    除此之外xlrd 都是好用的

     

    使用xlwt 用来写入 xls 文件

    xlwt --> xls write

    安装

    pip install xlwt

     

    使用

    from xlwt import Workbook

    book = Workbook(encoding='utf-8') # 创建 Workbook 对象
    sheet1 = book.add_sheet('Sheet 1') # 创建sheet页
    book.add_sheet('Sheet 2')
    sheet1.write(0,0,'A1') # 写入单元格
    sheet1.write(0,1,'B1')
    row1 = sheet1.row(1)
    row1.write(0,'A2')
    row1.write(1,'B2')

    book.save('simple.xls') # 保存文件

    image-20220113151559287

     

    此库17年后就没有更新过了

     

    xlutils :对于xlrd和xlwt 的扩展工具

    安装

    pip install xlutils 

     

    使用

    from xlrd import open_workbook
    from xlwt import easyxf
    from xlutils.copy import copy
    rb = open_workbook('source.xls',formatting_info=True)
    rs = rb.sheet_by_index(0)
    wb = copy(rb)
    ws = wb.get_sheet(0)
    plain = easyxf('')
    for i,cell in enumerate(rs.col(2)):
    if not i:
    continue
    ws.write(i,2,cell.value,plain)
    for i,cell in enumerate(rs.col(4)):
    if not i:
    continue
    ws.write(i,4,cell.value-1000)
    wb.save('output.xls')

     

     

     

     

    文档链接

    链接:https://pan.baidu.com/s/1aSE9Q9BV2kwt1tmjrh0mCA 提取码:1234 --来自百度网盘超级会员V5的分享

     

     

     

  • 相关阅读:
    git ——visual studio code 工具之 Git Graph & git clone & git checkout
    docker中添加redis & 在程序中应用
    Configuring Redis for ASP.NET Core Session Store(转载)
    Configuring Redis Session State In ASP.NET Core(转载)
    http请求端口占用异常——处理思路
    在pods中添加有关httpclient的 压力测试 & 监控
    Singleton HttpClient? Beware of this serious behaviour and how to fix it
    HttpClient 之 CLOSE_WAIT
    HttpClient的使用
    HttpClient连接池之CLOSE_WAIT
  • 原文地址:https://www.cnblogs.com/renoyuan/p/15797901.html
Copyright © 2011-2022 走看看