zoukankan      html  css  js  c++  java
  • 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、保存的时候也需要注意一下,建议重命名进行保存,因为不知道修改后的内容正确与否,是否修改了原文件的其它内容,所以最好是保留原有的文件。

    以上

  • 相关阅读:
    ZOJ 3818 Pretty Poem
    HDU 4597 Play Game
    HDU 4497 GCD and LCM
    CSU 1335 高桥和低桥
    UVA 10791 Minimum Sum LCM
    CSU 1119 Collecting Coins
    CSU 1120 病毒
    UVA 12169 Disgruntled Judge
    HDU 1301 Jungle Roads
    POJ 1258 Agri-Net
  • 原文地址:https://www.cnblogs.com/sammy1989/p/9609967.html
Copyright © 2011-2022 走看看