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 = ',\n"entrust.apply.baofu.monitor": 0,\n"entrust.resend.baofu.monitor": 0,\n"entrust.tracking.baofu.monitor": 0,\n"entrust.verify.baofu.monitor": 0\n}'
 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、需要添加內容的格式(如果對添加的內容沒有格式要求可以忽略),比如我這里需要有換行,就需要在字符串中相應的位置加上\n進行換行;

    2、添加內容的位置,如果是直接添加在原有字符串的后面,那很簡單,直接添加就可以了,如果是插入在固定位置,就需要先找到這個固定位置,可以通過正則表達式找到(關於正則表達式如何匹配指定字符可以自己上網搜搜)。這里我需要插入到原有字符串的“}”后面,這里沒有用正則表達式的方式進行處理,而是直接截取“}”之前的內容,然后在需要新加的內容后多加一個“}”,再將兩個拼接在一起就可以了,這種方法比用正則表達式要簡單點。

    3、保存的時候也需要注意一下,建議重命名進行保存,因為不知道修改后的內容正確與否,是否修改了原文件的其它內容,所以最好是保留原有的文件。

以上


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM