• python3 openpyxl修改Excel的内容


        这里只是对openpyxl这个模块修改Excel功能做一下记录,暂时没有对这个模块进行研究。

        工作中遇到需要对Excel中某一列的多行单元格添加相同的内容,刚开始的时候是自己手动添加,添加了一些后发现手动操作太慢了,也太无聊了。想起之前同事也遇到过相同的事情,后来写了个自动化解决了,于是直接找同事要了之前的自动化代码,稍加修改,为己所用:

     1 # coding=utf-8
     2 
     3 from openpyxl import load_workbook
     4 
     5 inwb = load_workbook("entrust.xlsx")
     6 add_data = ',
    "entrust.apply.baofu.monitor": 0,
    "entrust.resend.baofu.monitor": 0,
    "entrust.tracking.baofu.monitor": 0,
    "entrust.verify.baofu.monitor": 0
    }'
     7 
     8 for sheetName in inwb.get_sheet_names():
     9     # if not sheetName.isdigit():
    10     #     continue
    11     sheet = inwb[sheetName]
    12     # 修改第80列第29-117行的内容
    13     for rownum in range(29, 118):
    14         oldstr = sheet.cell(row=rownum, column=80).value
    15         print(type(oldstr))
    16         print(oldstr)
    17         if oldstr:
    18             # 根据需要截取原单元格里面的内容与需要添加的内容进行拼接
    19             newstr = oldstr[:-2] + add_data
    20             print(newstr)
    21             # 往单元格中写入拼接后的新字符串内容
    22             sheet.cell(row=rownum, column=80).value = newstr #if oldstr != "None" else ""
    23         else:
    24             pass
    25 
    26 
    27 # 将excel重命名保存
    28 inwb.save("entrust1.xlsx")
    View Code

        这里有几点需要注意一下:

        1、需要添加内容的格式(如果对添加的内容没有格式要求可以忽略),比如我这里需要有换行,就需要在字符串中相应的位置加上 进行换行;

        2、添加内容的位置,如果是直接添加在原有字符串的后面,那很简单,直接添加就可以了,如果是插入在固定位置,就需要先找到这个固定位置,可以通过正则表达式找到(关于正则表达式如何匹配指定字符可以自己上网搜搜)。这里我需要插入到原有字符串的“}”后面,这里没有用正则表达式的方式进行处理,而是直接截取“}”之前的内容,然后在需要新加的内容后多加一个“}”,再将两个拼接在一起就可以了,这种方法比用正则表达式要简单点。

        3、保存的时候也需要注意一下,建议重命名进行保存,因为不知道修改后的内容正确与否,是否修改了原文件的其它内容,所以最好是保留原有的文件。

    以上

  • 相关阅读:
    RESTClient使用
    web.xml 的加载过程
    I18N、L10N、G11N
    Oracle游标示例
    MyEclipse转换Eclipse项目无法启动问题(转)
    eclipse默认文件编码
    JAVA为什么要配置环境变量,怎样配置
    TODO Auto-generated method stub
    vc6开发ActiveX并发布全攻略(三)(转)
    高效使用hibernate-validator校验框架
  • 原文地址:https://www.cnblogs.com/sammy1989/p/9609967.html
Copyright © 2020-2023  润新知