python保留格式汇总各部门excel内容的实现思路

下面我来讲解一下“Python保留格式汇总各部门Excel内容的实现思路”的完整实例教程。

一、需求分析

我们需要实现一个Python程序,该程序可以自动批量提取各部门的Excel表格内容,并将内容汇总到一个新的Excel表格中,同时保留原有表格的格式和样式。

二、实现过程

1. 首先安装所需的Python模块

在终端中输入以下命令进行安装:

pip install pandas openpyxl xlrd xlwt xlutils

2. 编写Python程序

2.1 读取各部门Excel表格内容

使用pandas模块的read_excel()函数读取各部门Excel表格内容,代码示例如下:

import pandas as pd

# 读取各部门Excel表格内容
dept1_df = pd.read_excel("dept1.xlsx")
dept2_df = pd.read_excel("dept2.xlsx")
dept3_df = pd.read_excel("dept3.xlsx")

2.2 在新的Excel表格中汇总内容

使用pandas模块的concat()函数将各部门Excel表格内容汇总到一个新的Excel表格中,代码示例如下:

import pandas as pd

# 读取各部门Excel表格内容
dept1_df = pd.read_excel("dept1.xlsx")
dept2_df = pd.read_excel("dept2.xlsx")
dept3_df = pd.read_excel("dept3.xlsx")

# 将各部门Excel表格内容汇总到一个新的Excel表格中
sum_df = pd.concat([dept1_df, dept2_df, dept3_df])

2.3 保留原有表格的格式和样式

使用openpyxl模块读取新的Excel表格,并将各部门Excel表格内容的格式和样式复制到新的Excel表格中,代码示例如下:

import pandas as pd
from openpyxl import load_workbook
from openpyxl.utils.dataframe import dataframe_to_rows

# 读取各部门Excel表格内容
dept1_df = pd.read_excel("dept1.xlsx")
dept2_df = pd.read_excel("dept2.xlsx")
dept3_df = pd.read_excel("dept3.xlsx")

# 将各部门Excel表格内容汇总到一个新的Excel表格中
sum_df = pd.concat([dept1_df, dept2_df, dept3_df])

# 将新Excel表格中的数据复制到原有Excel表格的样式和格式中
book = load_workbook("new.xlsx")
writer = pd.ExcelWriter("new.xlsx", engine='openpyxl') 
writer.book = book
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)
sum_df.to_excel(writer, index=False, header=False, startrow=writer.sheets['Sheet1'].max_row)
for row in dataframe_to_rows(sum_df, index=False, header=False):
    writer.sheets['Sheet1'].append(row)
writer.save()

其中,new.xlsx是新的Excel表格文件名,Sheet1是新Excel表格中的Sheet名称。

3. 运行Python程序

在终端中输入以下命令运行Python程序:

python excel.py

运行完成后,在new.xlsx文件中即可看到各部门Excel表格内容的汇总,并且保留了原有表格的格式和样式。

三、示例说明

示例1

例如,我们有3个部门A、B、C,他们分别有自己的Excel表格a.xlsx、b.xlsx、c.xlsx。我们想将这些Excel表格内容汇总到一个新的Excel表格new.xlsx中,并且保留原有表格的格式和样式。

在终端中,我们运行excel.py文件,即可实现将各部门Excel表格内容汇总到一个新的Excel表格中,并保留原有表格的格式和样式。

示例2

另一个例子是,如果我们在新Excel表格中想要添加一行合计数据,可以在sum_df中加入新的一行,代码示例如下:

import pandas as pd
from openpyxl import load_workbook
from openpyxl.utils.dataframe import dataframe_to_rows

# 读取各部门Excel表格内容
dept1_df = pd.read_excel("dept1.xlsx")
dept2_df = pd.read_excel("dept2.xlsx")
dept3_df = pd.read_excel("dept3.xlsx")

# 将各部门Excel表格内容汇总到一个新的Excel表格中
sum_df = pd.concat([dept1_df, dept2_df, dept3_df])

# 添加合计
sum_df.loc[len(sum_df)] = sum_df.sum()

# 将新Excel表格中的数据复制到原有Excel表格的样式和格式中
book = load_workbook("new.xlsx")
writer = pd.ExcelWriter("new.xlsx", engine='openpyxl') 
writer.book = book
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)
sum_df.to_excel(writer, index=False, header=False, startrow=writer.sheets['Sheet1'].max_row)
for row in dataframe_to_rows(sum_df, index=False, header=False):
    writer.sheets['Sheet1'].append(row)
writer.save()

在运行后可以在新的Excel表格中看到添加了一行合计数据。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python保留格式汇总各部门excel内容的实现思路 - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • Python正则表达式匹配日期与时间的方法

    正则表达式是一种强大的工具,可以用于匹配、查找和替换文本中的模式。在Python中,re模块提供了一系列函数来操作正则表达式。本攻略将详细讲解Python中正则表达式匹配日期与时间的方法。 匹配日期 使用正则表达式匹配日期,可以使用\d{4}-\d{2}-\d{2}匹配所有的日期格式。下面是一个例子,演示如何使用正则表达式匹配字符串中的日期: import …

    python 2023年5月14日
    00
  • Excel 如何将除第一个字母外的所有大写字母改为小写

    要在 Excel 中将除第一个字母外的所有大写字母改为小写,可以使用“文本函数”和“查找和替换”功能。具体步骤如下: 在 Excel 中,选择包含文本的单元格。 在公式栏中输入以下公式:=LOWER(LEFT(A1,1))&MID(A1,2,LEN(A1)-1),其中 A 是包含文本的单元格。 按下回车键,Excel 将显示除第一个字母外的所有大写字…

    云计算 2023年5月10日
    00
  • 带有 seaborn 或 pyplot 的 Python 子图

    【问题标题】:Python subplots with seaborn or pyplot带有 seaborn 或 pyplot 的 Python 子图 【发布时间】:2023-04-04 18:40:01 【问题描述】: 我是一名学习 python 的 R 程序员,发现在 python 中绘图比 R 困难得多。 我正在尝试编写以下函数,但没有成功。有人可以…

    Python开发 2023年4月6日
    00
  • 遗传算法python版

    下面是关于“遗传算法Python版”的详细讲解。 1. 遗传算法的基本原理 遗传算法是一种基于自然选择和遗传学原理的优化算法,它通过模拟生物进化过程来寻找最优解。遗传算法的基本流程如下: 初始化种群:随机生成一组初始解作为种群。 选择:根据适应度函数选择一部分优秀的个体作为父代。 交叉:将父代个进行交叉操作,生成新的子代个体。 变异:对子代个体进行变异操作,…

    python 2023年5月13日
    00
  • 详解Python中datetime库的使用

    详解Python中datetime库的使用 1. datetime库概述 datetime库是Python中处理日期和时间的标准库之一,它提供了多种方便的函数和类,能够方便地完成日期和时间的计算和转换等操作。 2. datetime库结构 datetime库的基本结构包含三个类:date、time和datetime。其中,date类表示日期,time类表示时…

    python 2023年6月2日
    00
  • 全面分析Python的优点和缺点

    全面分析Python的优点和缺点 优点 简单易学:Python语法简洁清晰,语言结构非常简单,易于学习。 开发效率高:Python拥有丰富的类库和开发工具,可以极大地提高开发效率。 跨平台性好:Python是一款跨平台语言,可以在Windows、Linux、Mac OS等多种操作系统上运行,具有良好的可移植性。 大量第三方库:Python拥有大量的第三方库,…

    python 2023年5月30日
    00
  • Python命名空间与作用域深入全面详解

    Python命名空间与作用域深入全面详解攻略 Python是一门解释型语言,在执行代码时需要进行解释。在语言中,每一个对象都有一个命名空间。而在程序代码中,每一个名字都属于对应的命名空间。Python中的变量作用域遵循LEGB规则,即从局部作用域开始寻找变量,一直找到全局作用域,如果还未找到,就会报错。 Python命名空间详解 命名空间是Python中的一…

    python 2023年5月13日
    00
  • Python enumerate()计数器简化循环

    当我们在使用 Python 进行循环迭代时,可能需要记录当前迭代到第几次循环。这时应该使用 enumerate() 内置函数。enumerate()专门用于将一个可迭代对象中的每个元素对应一个递增的计数器,从而简化循环的过程。 下面是 enumerate() 函数的标准语法: enumerate(sequence, start=0) 该函数接受两个参数:se…

    python 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部