如何用python把多个excel文件自动合并到一个文件中
工作中经常用到Excel,很情都重复处理,比如每日报,每周的周报,各种数,这种固定的表其实都是性的劳动。最近这段时间一直在学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)
如何用python把多个excel文件自动合并到一个文件中
Excel好像自带合并功能,不明白为什么好多人要用python
如何用python从excel中同时提取两个列的数据,并生成dict(用xlrd)
import xlrd
data = xlrd.open_workbook('excelFile.xls')
table = data.sheet_by_index(0) #通引顺序获取工
colnumber_b = ord('B')-ord('A')
colnumber_g = ord('G')-ord('A')
score_dict = {}
for i in range(100): #百行
score_dict[table.cell(i,colnumber_b).value]=table.cell(i,colnumber_g).value