你好,怎么用Python对一个文件夹里包含多个Excel子文件进行批量修改某一单元格(是合并的)?

 我来答
智者总要千虑
高粉答主

2020-05-11 · 说的都是干货,快来关注
知道顶级答主
回答量:7.9万
采纳率:88%
帮助的人:1.4亿
展开全部
工作中经常用到Excel,很多事情都重复处理,比如每天的日报,每周的周报,各种数据表,这种固定的表其实都是636f7079e799bee5baa6e997aee7ad9431333363393666重复性的劳动。最近这段时间一直在学python,但是断断续续的,眼高手低,看别人的代码看的很懂,但是自己就是写不出来,决定自己写个小程序练练手,解决下身边的实际问题,提高工作效率。
这个小脚本主要是把多个excel文件合并到一个文件中。网上搜索了下文章,有不少excel的python库,最后选择了适合python3的openpyxl库,这个库安装很简单,
pip install openpyxl

开发的环境是:mac/win +python3.5 +pycharm
废话不多说,把代码贴出来,请大家多指点下,我觉着代码还可以更简洁下,如果大家有好的优化方案麻烦留言指导下:
#coding=gbkimport openpyxlexcel_data=['qihu.xlsx','baidu.xlsx']# new=openpyxl.load_workbook('all.xlsx')for excel_name in excel_data:
wb= openpyxl.load_workbook(excel_name,data_only=True)
sheet_name=wb.get_sheet_names()
# print(sheet_name)
for work in sheet_name:
nb = openpyxl.load_workbook('all.xlsx',data_only=True)
newsheet_name = nb.get_sheet_names()
if work in newsheet_name :
name = nb.get_sheet_by_name(work)
sheet = wb.get_sheet_by_name(work)
for i in range(1,sheet.max_row+1):
for j in range(1,sheet.max_column+1):

# 获取整个sheet数据
data=sheet.cell(row=i,column=j).value

name.cell(column=j,row=i).value=data
else:
newsheet = nb.create_sheet(title=work)
name = nb.get_sheet_by_name(work)

sheet = wb.get_sheet_by_name(work)
for i in range(1,sheet.max_row+1):
for j in range(1,sheet.max_column+1):

# 获取整个sheet数据
data=sheet.cell(row=i,column=j).value

name.cell(column=j,row=i).value=data
print(name)
nb.save('all.xlsx')
# print(newsheet_name)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式