python 批量修改excel
因为上一篇中,使用xlrd和xlutils修改excel,运行之后,表格格式和图片全没有了,我家小哥哥又太忙,只能自己再研究研究了。
xlwings
这两天查了python修改excel的库,蛮多,最终选择了xlwings,使用方式也很简单
全部代码如下:
# -*- coding: utf-8 -*-
import os
import xlwings as xw
def editExlXL(app, originPath, fileItem):
# 打开已经有的工作薄(支持相对路径和绝对路径)
wb = app.books.open(originPath + '/' + fileItem)
# 获取第一个sheet
sht = wb.sheets[0]
# print(sht, 'sheet')
# 修改a1的值
# sht.range('a1').value = ''
for sheet in wb.sheets:
for picture in sheet.pictures:
height = picture.height
top = picture.top
# 删除指定位置的图片
if (top < 10 and height < 30):
picture.delete()
wb.save('./data/' + fileItem)
# 关闭工作薄
wb.close()
def mkdir(path):
folder = os.path.exists(path)
if not folder:
os.makedirs(path)
print('--- folder mk ---')
else:
print('--- folder exists ---')
def getFileList(path):
return os.listdir(path)
def editAll():
# 新建工作薄(只打开不新建)
app = xw.App(visible=True, add_book=False)
# wb = app.books.add()
originPath = './origin'
fileList = getFileList(originPath)
print(fileList)
# 运行之前先清空data
# if os.path.exists('./data'):
# os.removedirs("./data")
# 创建data文件夹
mkdir('./data')
for fileItem in fileList:
editExlXL(app, originPath, fileItem)
# 退出excel
app.quit()
editAll()
运行方式
- 把你需要修改的文件放到origin文件夹下,如果没有辛苦手动创建一下,然后按照下面方式操作
pip install xlwings
python excel_opt.py
也可以参照我的python学习专栏的其他文章运行
xlwings API Document
啰嗦时间
借用我家小哥哥的口头禅:方法总比困难多。