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一点样式都没有。
喜欢的
————————————————
————————