前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[Python]使用Python读取多个excel文件内容,然后汇总到excel中

[Python]使用Python读取多个excel文件内容,然后汇总到excel中

原创
作者头像
东风压倒西风
修改2022-09-16 10:02:35
3.6K0
修改2022-09-16 10:02:35
举报
文章被收录于专栏:卓谷山

需求是要将读取多个excel文件中的内容,然后汇总在result.xlsx文件中。

前提是这些excel的格式都一致。虽然使用vba很方便,但是据闻python的读取excel也很强大,便尝试一下。

参考了如下url:

https://note.nkmk.me/python-xlrd-xlwt-usage/

https://reffect.co.jp/python/python-pandas-excel

https://note.nkmk.me/python-os-basename-dirname-split-splitext/

大致步骤如下

  • 安装xlrd, openpyxl
  • 使用xlrd读取excel
  • openpyxl写入excel

安装xlrd, openpyxl

代码语言:javascript
复制
$ pip install xlrd
$ pip install openpyxl

xlwt 适用于xls,这里使用了openpyxl。

使用xlrd读取excel,openpyxl来写文件

代码语言:python
代码运行次数:0
复制
import xlrd
#import xlwt 适用于xls
#import pandas as pd  #适用于xlsx
import openpyxl  #适用于xlsx

import pprint
import glob
import os

files = glob.glob("./*.xls")
resultList = [['FileName', 'SheetName', 'Count'], ]
total = 0 

for file in files:
    wb = xlrd.open_workbook(file)
    for sheetname in wb.sheet_names():
        sheet = wb.sheet_by_name(sheetname)
        lastRow = sheet.nrows
        count = 0
        # excel中的行列都是从0开始计数的
        for row in range(3,lastRow-1):
            for line in range(52,55):
                cell = wb.sheet_by_name(sheetname).cell(row,line)
                if str.strip(str(cell.value)) == '○': 
                    count = count + 1
        total = total + count
        print(file + "->" + sheetname + ":" + str(count))
        resultList.append([os.path.basename(file),sheetname,count])
        
# 结果写入文件
wb = openpyxl.load_workbook("./result.xlsx")
sheet = sheet = wb['Sheet1']

def write_list_2d(sheet, l_2d, start_row, start_col):
    for y, row in enumerate(l_2d):
        for x, cell in enumerate(row):
            sheet.cell(row=start_row + y,
                       column=start_col + x,
                       value=l_2d[y][x])

write_list_2d(sheet, resultList, 1, 2)
wb.save("./result.xlsx")

#pprint.pprint(list(resultList), width=40)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 大致步骤如下
  • 安装xlrd, openpyxl
  • 使用xlrd读取excel,openpyxl来写文件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档