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中前缀运算符和*的用法示例详解 在Python中,前缀运算符和*的用法非常灵活多样,能够简化代码编写、提高代码效率。具体用法如下: 前缀运算符* 前缀运算符*可用于函数调用时将序列或元组展开成位置参数,或将字典展开为关键字参数。例如: # 将序列展开成位置参数 nums = [1, 2, 3, 4] print(*nums) # 输出:1 2 3…

    python 2023年5月14日
    00
  • Python爬虫使用代理IP的实现

    Python爬虫使用代理IP的实现 在爬取网站数据时,有些网站会限制同一 IP 地址的请求频率,为了避免被封禁 IP,我们可以使用代理 IP 来发送请求。以下是 Python 爬虫使用代理 IP 的实现方法。 使用 requests 模块发送请求 使用 requests 模块发送请求时,可以通过 proxies 参数设置代理 IP。以下是一个使用 reque…

    python 2023年5月15日
    00
  • Python API自动化框架总结

    Python API自动化框架总结 什么是API自动化框架? API自动化框架是用于编写和管理API自动化测试脚本的工具集。它通常包括以下组件: 框架驱动器 配置管理器 数据管理器 日志记录器 代码库 API自动化框架的优势 使用API自动化框架可以带来以下好处: 提高测试效率和准确性 减少测试人员的时间和精力 可重复性测试优于手动测试 更好的测试结果和更高…

    python 2023年5月18日
    00
  • python3.6.3+opencv3.3.0实现动态人脸捕获

    Python3.6.3 + OpenCV3.3.0 实现动态人脸捕获 准备工作 在开始之前,我们需要准备一些必要的工具和环境:- Python3.6.3- OpenCV3.3.0- 摄像头设备(PC自带或USB摄像头) 安装Python3.6.3和OpenCV3.3.0 如果你还没有安装Python3和OpenCV,可以参考以下步骤: 安装Python3.6…

    python 2023年5月18日
    00
  • Python脚本实现定时任务的最佳方法

    下面我将为您详细讲解“Python脚本实现定时任务的最佳方法”的完整攻略。 一、常用的定时任务实现方法 1.1 crontab 这是一个Linux下的计划任务管理工具,可以在Linux系统下定期执行某个命令或程序。可以使用以下命令让Linux系统每分钟执行一次Python脚本: * * * * * python /path/to/script.py 1.2 …

    python 2023年5月19日
    00
  • Python测试模块doctest使用解析

    Python测试模块doctest使用解析 在Python中,doctest是一个非常有用的测试工具,可以帮助我们测试函数和模块的正确性。本文将详细讲解Python测试模块doctest的用法和解析。 doctest的基本用法 doctest模块提供了一种简单的方式来测试Python代码的正确性,它可以从文档字符串中提取代码示例,并执行这些示例,然后比较输出…

    python 2023年5月15日
    00
  • Python获取、格式化当前时间日期的方法

    下面是Python获取、格式化当前时间日期的方法的完整攻略。 获取当前时间 要获取当前时间,可以使用Python的内置模块datetime。 代码示例: import datetime # 现在的时间 now = datetime.datetime.now() print(now) 运行结果: 2022-07-06 21:13:36.994009 这里的no…

    python 2023年6月3日
    00
  • Python pygame新手入门基础教程

    首先,讲一下什么是Python pygame。 什么是Python pygame Python pygame是一个基于Python语言的跨平台开源游戏开发库。它提供了一系列的API,开发者可以通过这些API来实现2D游戏或图形应用程序。 安装Python pygame 在使用Python pygame之前,需要先安装Python和pygame。 安装Pyth…

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