如何把文件汇总到一个

如何把文件汇总到一个,第1张

*** 作方法如下:

*** 作设备:戴尔笔记本电脑

*** 作系统:win10

*** 作程序:Microsoft Office Excel2016版,多个Excel文件

1、首先在桌面上打开Excel文件。

2、在Microsoft Office Excel2016版窗口上,选中顶部工具栏里“方方格子”的“工作表”图标的“汇总拆分”图标。

3、在Microsoft Office Excel2016版窗口上,选择“汇总大师”。

4、在Microsoft Office Excel2016版窗口上,点击左侧选项栏里“多簿汇总到一表”。

5、在Microsoft Office Excel2016版窗口上,点击“开始”。

6、在Microsoft Office Excel2016版窗口上,点击“添加文件”。

7、在Microsoft Office Excel2016版窗口上,选中要提取指定单元格数据的多个Excel文件。

8、在Microsoft Office Excel2016版窗口上,点击“打开”。

9、在Microsoft Office Excel2016版窗口上,选择“区域”和“提前数值”提取指定的单元格数据。

10、在Microsoft Office Excel2016版窗口上,点击“开始”。

11、在Microsoft Office Excel2016版窗口上,显示提取成功,点击“确定”。

12、最后在该界面中,显示成功从多个Excel文件中提取指定单元格数据。

1、将需要合并的工作表移动到一个新建文件夹中,这一点很重要。

2、打开一个新建的exce工作表

3、点击工作表下方的sheet,d单击鼠标右键,点击“查看代码”

4、在d出的对话框中选择“插入”,在下拉列表中选择“模板”,就可以把多个excel文件汇总到一个excel的不同sheet了。

```# -*- coding:utf-8 -*-

import openpyxl

import xlrd

import os.path

import time

workbook1 = openpyxl.load_workbook('C:/Users/Administrator/Desktop/汇总.xlsx')#提前建一个汇总的表

name_list = workbook1.sheetnames #获取提前建一个汇总的表的sheet表名

sheet1 = workbook1[name_list[0]]#取第一个sheet表

sheet1.append(['姓名','工资','工资实发','年度'])#给汇总表添加标题,标题名按照提取表的字段来命名

path = 'C:/Users/Administrator/Desktop/汇总excel/'#需要汇总表的文件夹位置

file_list = os.listdir(path)  # 获取这个文件夹下所有的excel文档。

for file in file_list:

    if os.path.splitext(file)[1]=='.xlsx':  #获取所有xlsx的文件

        workbook = openpyxl.load_workbook(path+file)  # 加载已经存在的excel

        name_list = workbook.sheetnames #获取所有的sheet表名

        sheet = workbook[name_list[0]]#取第一个sheet表

        #print(sheet.dimensions) 获取所有表的范围 A1:O24

        cell = sheet['A']

        for i in cell:

            if i.value == '序号':

                a = i.row

                print(a)

            elif i.value == '合计':

                b = i.row

                print(b)

        #此循环取需要获取的行数范围,其中的A列、序号和合计为起始位置定位     

        cell1 = sheet[sheet.dimensions]

        for i in cell1:

            for j in i:

                if j.value == '姓名':

                    e = j.column

                    print(e)

                elif j.value == '工资':

                    c = j.column

                    print(c)

                elif j.value == '工资实发':

                    d = j.column

                    print(d)

        # 此循环取需要获取的列数,其中的姓名、工资和工资实发为列位置定位                 

        test_case=[]

        for row in range(a+2,b):

            sub_data={}

            sub_data['姓名']=sheet.cell(row,e).value

            sub_data['工资']=sheet.cell(row,c).value

            sub_data['工资实发']=sheet.cell(row,d).value

            #print(list(sub_data.keys()))

            ll=list(sub_data.values())

            #print(ll)

            test_case.append(ll)

        print (file) 

        #print("读取到的所有测试用例:",test_case)

        # 此循环为将需要获取的列字段对应的行数范围值取出来

        max_row = sheet1.max_row #取汇总表的行数

        print(max_row) 

        for row in test_case:

            sheet1.append(row)

        # 此循环为 将数据追加到汇总表中

        hang = list(range(max_row+1,max_row+b-a-1))

        for i in hang:

        #print(hang)

            sheet1.cell(row=i,column=4,value=file)#column=4 需要根据实际情况更改

        # 此循环为 生成一列,将表名作为数据追加到列中 

        workbook1.save('C:/Users/Administrator/Desktop/汇总.xlsx')

附记

#定位含有某字符串的单元格

cell = sheet['A']

        for i in cell:

            if i.value == '序号':

                a = i.row

                print(a)

            elif '填表' in str(i.value): #查找含有填表字符串的位置

                b = i.row

                print(b)

附记

#将非xlsx格式表转成xlsx

path = 'C:/Users/Administrator/Desktop/汇总excel/'#需要汇总表的文件夹位置

file_list = os.listdir(path)  # 获取这个文件夹下所有的excel文档。

for file in file_list:

      file_name,suff=os.path.splitext(file)

      if suff =='xls':

              data=pd.DataFrame(pd.read_excel(path+"/"+file))

              data.to_excel(path+"/"+file_name+".xlsx",index=False)

       if os.path.splitext(file)[1]=='.xlsx':  #获取所有xlsx的文件 


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/8063657.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存