簡體   English   中英

從python中的excel文件中刪除波浪號和字符

[英]Remove tildes and characters from excel file in python

我有一個腳本,我在其中使用另一個文件中的數據自動填充 excel 文件。 唯一的問題是列中的文本中有波浪號,因此結果為 N/A。 有沒有辦法可以在python中刪除波浪號和字符?
一個例子是 12345~R3~A8987~ABC,我想刪除波浪號以便我可以搜索它以及刪除最后的 ABC

from openpyxl import load_workbook
wb = load_workbook(filename = 'file1.xlsx')
wb1 = load_workbook(filename = 'file2.xlsx')
ws = wb['Sheet1']
ws1 = wb1['Sheet1']
for row in ws1 ['AW4:AW7']:
    for cell in row:
        cell.value = "=VLOOKUP(C{0}, 'file1.xlsx'!$C:$G, 5, FALSE)".format(cell.row)
for row in ws1 ['AX4:AX7']:
    for cell in row:
        cell.value = "=VLOOKUP(D{0}, 'file1.xlsx'!$D:$H, 5, FALSE)".format(cell.row)        
wb1.save('file2.xlsx')

更新:我得到了這個代碼來替換波浪號和 ABC 但它只打印結果(所以我知道代碼有效),但它實際上不會保存 excel 文件。

for row in ws1 ['C2:C7']:
for cell in row:
    remove_til = cell.value.replace(chr(126)," ").replace("ABC","")
print(remove_til)
wb1.save('REQ20200113_C.xlsx')

您可以使用替換函數,它用替換字符串替換目標字符串:

 new_string = old_string.replace(target, replacement)

因此,當您讀取某個單元格的值時,您會添加它。 只需將 old_string 替換為您從單元格中讀取的值,此代碼應該可以工作。

old_string = "12345~R3~A8987~ABC"
target = ["~", "ABC"]
replacement = [" ", ""]
tmp_string = old_string.replace(target[0],replacement[0])
new_string = tmp_string.replace(target[1],replacement[1])
print(new_string)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM