Python-工具-批量替換EXCLE文件中某列的值


    由於工作的原因,經常需要查詢統計各地數據,有時結果收集上來后發現需要對其中某些列的數據進行轉換,例如將代碼值轉成中文含義。

    重新統計需要花費時間和運維精力,所以自己寫了一個簡單的替換腳本。當然,理想狀態還是在查詢統計前就把要求確認。

    下面的代碼復制到.py文件中,安裝完成Python后,安裝必要的包(xlrd、xlutils)就可以使用了。注意的是,需要替換的所有文件需和腳本文件同一目錄。

    (腳本只能處理xls擴展名的文件,因為對xlsx處理可用的Python包沒找到,但是xlsx的可以批量替換擴展名再進行處理,批量替換擴展名一行命令就搞定,不會的可以Bing一下)

from xlutils.copy import copy
import xlrd
import os
import sys

print("要替換的文件需與腳本同一目錄")
a = input("輸入替換前的內容 \n")
b = input("輸入替換后的內容 \n")
c = input("輸入替換是第幾列 \n")
c = int(c) - 1

#當前路徑 print(sys.path[0])
for files in os.walk(sys.path[0]):
for file in files[2]:
#print(file[-3:])
if(file[-3:] == 'xls'):
#1、打一要修改的excel
#2、再打開另一個excel
#3、把第一個excel里面修改東西寫到第二個里頭
#4、把原來的excel刪掉,新的excel名改成原來的名字
book = xlrd.open_workbook(file)
table1 = book.sheets()[0]
nr = table1.nrows
nc = table1.ncols
num = 0
#復制一個excel
new_book = copy(book)
#通過獲取到新的excel里面的sheet頁
sheet = new_book.get_sheet(0)
for i in range(0,nr):
#print(str(table1.cell(i,c).value))
if(str(table1.cell(i,c).value) == a):
#寫入excel,第一個值是行,第二個值是列
sheet.write(i, c, b)
num = num + 1
#保存新的excel,保存excel必須使用后綴名是.xls的,不是能是.xlsx的
new_book.save('2.xls')
#刪除原有
os.remove(file)
#將新文件重命名原有文件
os.rename('2.xls',file)
print(file + " 替換完成 共替換"+ str(num) + "")

ex = input("是否退出,Y or N ? \n")
if(ex == 'Y'):
exit()

 

 

 


免責聲明!

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



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