Python批量修改Excel中的文件內容


import os
import xlrd
from xlutils.copy import copy
def base_dir(filename=None):
    return os.path.join(os.path.dirname(__file__),filename)

"""對excel進行操作"""
work = xlrd.open_workbook(base_dir("excel.xls"))
# 索引到第X個工作表
sheet = work.sheet_by_index(0)
#查看有多少行
print(sheet.nrows)
#查看有多少列
print(sheet.ncols)
#獲取單元格內容
print(sheet.cell_value(5,2))

"""對excel進行修改/添加內容"""

# 找到需要更該的xls
work = xlrd.open_workbook(base_dir("excel.xls"))
print(work)
# 對數據表格進行復制
old_content = copy(work)
# 定位到Sheet1表
ws = old_content.get_sheet(0)
#在sheet1表中寫入內容
ws.write(7,2,"Tao")
#對修改后的內容進行保存
old_content.save(base_dir("data.xls"))

 

 

 

 

 

Python批量修改Excel中的文件內容

 

# -*- coding: utf-8 -*-
from xlrd import open_workbook
from xlutils.copy import copy

# 括號里放入要讀取的文件的絕對路徑
wb = open_workbook('./res/bing.xls')
# 獲取所讀取文件的第一張表單
sheet = wb.sheet_by_index(0)
# 獲取該表單的行數
s = sheet.nrows

# 復制原文件,因為原文件只能讀取,不能寫入數據,所以要復制得到一個可以寫入數據的文件
newwb = copy(wb)
# 獲取可寫文件的第一張表單
newsheet = newwb.get_sheet(0)
try:
    for row in range(sheet.get_rows()):
        # 遍歷每一行,當8列的值小於12時,就把該值改為0
        if sheet.cell(row,7).value < 12:
            newsheet.write(row, 7, 0)
except:
    print("")

newwb.save('1.xls')123456789101112131415161718192021222324                                   
               
————————

 

 

xlwt 寫庫的局限性: 只能寫入新建的 excel。
xlutils 庫的 copy 功能可能幫助我們打破這個局限性。
首先,用pip install xlutils來添加 xlutils 庫。
import xlwt
import xlrd
import xlutils.copy

rd = xlrd.open_workbook("Hello.xls", formatting_info = True)   # 打開文件
wt = xlutils.copy.copy(rd)   # 復制
sheets = wt.get_sheet(0)   # 讀取第一個工作表
sheets.write(m, n, "I love you!")   # 向 m-1 行 n-1 列的單元格寫入內容
wt.save("Hi.xls")   # 保存
123456789
實現原理就是:我先讀,再用xlutils.copy的 copy 復制一份,復制的這個就能實現寫入了。
xlrd.open_workbook("Hello.xls", formatting_info = True)
里面的參數是可選的: 很重要,這個是保留原格式,沒有它的話你會發現新的excel一點樣式都沒有。
喜歡的
————————————————

 

————————

 


免責聲明!

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



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