前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于Excel表操作-合并文件操作

关于Excel表操作-合并文件操作

作者头像
python与大数据分析
发布2022-05-19 12:24:40
4680
发布2022-05-19 12:24:40
举报

最近有点忙有点烦,天天忙于数据治理,说是数据治理,整天就是忙于整理和下发各种表格,从开始下发到各地区的表格合并进来,再到入库,再到比对,再到分离下发,再到按字段拆分,从xlrd,lxlwr,openpyxl,pandas,再到cx_Oracle,再到fuzzywuzzy,gensim等等,从最初的流水版本进化到封装成类,挺繁琐的,不过也挺好玩的。

整个文件的资源目录结构如下

要做的事情就是把各子文件夹下文件名为《文件类型一》、《文件类型二》、《文件类型三》的全合并成一个个大文件,sheet名都是Sheet0,还是有章可循的。

代码语言:javascript
复制
import os
import openpyxl
asepath = r'C:\Users\baoqi\Documents\'
sheetname='Sheet0'
destfilename=r'C:\Users\baoqi\Documents\海南\文件类型一.lsx'
keyword='文件类型一'
代码语言:javascript
复制
# 获取当前文件夹下的各单位文件夹
allpath = os.listdir(basepath)
data = []
for curpath in allpath:
    # 拼接路径及文件
    fullpath = basepath + '\\'+curpath
    if os.path.isfile(fullpath):
        continue
    allfiles=os.listdir(fullpath)

    # 获取各单位文件夹下的文件
    for curfile in allfiles:
        curpathfile=fullpath+'\\'+curfile
        if not os.path.isfile(curpathfile) or '~' in curfile:
            continue
        if keyword in curfile:
            print('读取文件 ',curpathfile)
            lsdatalist=[]
            # 打开文件,打开指定sheet
            wb = openpyxl.load_workbook(curpathfile)
            sh = wb[sheetname]
            # 获取sheet数据
            rows = list(sh.rows)
            # 遍历读取行信息,并附加补充列
            for row in rows[4:]:
case = []                # 追加了一些区识字段                case.append(keyword)
                case.append(curpath)
                for r in row:
                    case.append(r.value)
                data.append(case)
            wb.close()
print('{} 共读取{}行'.format(keyword,len(data)))
wb = openpyxl.Workbook()
sh = wb.active
sh.title = sheetname
for ss in data:
    sh.append(ss)
wb.save(destfilename)
print("写入{}文件成功!".format(destfilename))

代码还是有很多简化和优化空间的。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 python与大数据分析 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档