Python实战: 写入 Excel 的多个 Sheet

2024-09-05 04:20

本文主要是介绍Python实战: 写入 Excel 的多个 Sheet,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

更多内容 个人网站:孔乙己大叔

一、引言

        在处理大型数据集或需要向非技术用户展示分析结果时,Excel 是一种广泛使用的工具。然而,手动创建包含多个 Sheet 的 Excel 文件既耗时又容易出错。幸运的是,Python 提供了自动化这一过程的强大工具。通过编写 Python 脚本,我们可以轻松地将分析结果、统计数据或其他任何形式的数据集整理成结构清晰、易于理解的 Excel 文件。

二、安装必要的库

        首先,我们需要安装 pandas 和 openpyxl 这两个库。pandas 是 Python 中用于数据分析和操作的核心库,而 openpyxl 是一个用于读写 Excel 2010 xlsx/xlsm/xltx/xltm 文件的库。

在命令行中运行以下命令来安装这两个库:

pip install pandas openpyxl

        确保你的 Python 环境已经配置好,并且 pip 工具可以正常使用。安装完成后,你就可以在 Python 脚本中导入并使用这两个库了。

三、导入库

        在你的 Python 脚本中,首先需要导入 pandas 库。如果你打算直接使用 pandas 的 Excel 写入功能(通过 ExcelWriter),则无需显式导入 openpyxl,因为 pandas 在内部会处理与 openpyxl 的交互。但是,了解 openpyxl 的存在和其在 pandas 中的作用是有益的。

import pandas as pd
四、准备数据

        在将数据写入 Excel 之前,你需要先准备好这些数据。这些数据可以是来自数据库、CSV 文件、其他 Excel 文件或直接在 Python 脚本中定义的。在本例中,我们将直接在脚本中定义两个数据集:一个用于学生成绩,另一个用于员工信息。

# 创建学生成绩数据  
data_students = {  '姓名': ['小明', '小红', '小张'],  '数学': [90, 85, 78],  '英语': [88, 92, 79]  
}  # 创建员工信息数据  
data_employees = {  '姓名': ['张三', '李四', '王五'],  '职位': ['开发工程师', '产品经理', '市场专员'],  '薪资': [8000, 9000, 7500]  
}

        这些数据以字典的形式存储,每个字典代表一个数据集,其中键是列名,值是对应的行数据。

五、创建 Excel Writer

        接下来,我们需要使用 pandas 的 ExcelWriter 类来创建一个 Excel 文件的写入器。这个写入器将允许我们向同一个 Excel 文件中写入多个 Sheet。

excel_file = 'multiple_sheets_example.xlsx'  # 定义 Excel 文件名  # 使用 ExcelWriter 创建一个写入器,指定文件名和引擎  
with pd.ExcelWriter(excel_file, engine='openpyxl') as writer:  # 后续步骤将在这里进行

        在 with 语句块中,你可以多次调用 DataFrame 的 to_excel 方法,将不同的数据集写入不同的 Sheet。with 语句确保在代码块执行完毕后,Excel 文件会被正确保存并关闭。

六、写入多个 Sheet

        现在,我们可以将准备好的数据写入 Excel 的不同 Sheet 了。使用 DataFrame 的 to_excel 方法,并指定 sheet_name 参数来命名每个 Sheet。

# 将学生数据转换为 DataFrame 并写入 '学生成绩' Sheet  
df_students = pd.DataFrame(data_students)  
df_students.to_excel(writer, sheet_name='学生成绩', index=False)  # 将员工数据转换为 DataFrame 并写入 '员工信息' Sheet  
df_employees = pd.DataFrame(data_employees)  
df_employees.to_excel(writer, sheet_name='员工信息', index=False)

        在上面的代码中,index=False 参数用于指示在写入 Excel 时不要包含 DataFrame 的索引列。这通常是为了使 Excel 文件更加整洁和易于理解。

七、保存文件

        实际上,在 with 语句块结束时,pandas 会自动关闭 ExcelWriter 并保存文件。因此,你不需要编写额外的代码来保存文件。但是,了解这一点对于理解整个流程很重要。

八、完整的代码示例

        将以上所有步骤组合在一起,我们得到以下完整的 Python 脚本:

import pandas as pd  # 准备数据  
data_students = {  '姓名': ['小明', '小红', '小张'],  '数学': [90, 85, 78],  '英语': [88, 92, 79]  
}  data_employees = {  '姓名': ['张三', '李四', '王五'],  '职位': ['开发工程师', '产品经理', '市场专员'],  '薪资': [8000, 9000, 7500]  
}  # 创建 Excel 写入器  
excel_file = 'multiple_sheets_example.xlsx'  
with pd.ExcelWriter(excel_file, engine='openpyxl') as writer:  # 写入学生数据  df_students = pd.DataFrame(data_students)  df_students.to_excel(writer, sheet_name='学生成绩', index=False)  # 写入员工数据  df_employees = pd.DataFrame(data_employees)  df_employees.to_excel(writer, sheet_name='员工信息', index=False)  # 文件已自动保存

        运行这个脚本后,你会在当前目录下得到一个名为 multiple_sheets_example.xlsx 的 Excel 文件,其中包含两个 Sheet:一个名为“学生成绩”,包含学生数据;另一个名为“员工信息”,包含员工数据。

孔乙己大叔您的一站式代码技术资源中心。我们汇集了各种编程语言的教程、最佳实践和行业解决方案,帮助您轻松掌握最新技术。此外,我们还提供了一系列实用的开发者工具和代码库,助您提升开发效率。立即访问,探索更多精彩内容!icon-default.png?t=N7T8http://www.rebootvip.com/

这篇关于Python实战: 写入 Excel 的多个 Sheet的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1137932

相关文章

Python中的filter() 函数的工作原理及应用技巧

《Python中的filter()函数的工作原理及应用技巧》Python的filter()函数用于筛选序列元素,返回迭代器,适合函数式编程,相比列表推导式,内存更优,尤其适用于大数据集,结合lamb... 目录前言一、基本概念基本语法二、使用方式1. 使用 lambda 函数2. 使用普通函数3. 使用 N

Python如何实现高效的文件/目录比较

《Python如何实现高效的文件/目录比较》在系统维护、数据同步或版本控制场景中,我们经常需要比较两个目录的差异,本文将分享一下如何用Python实现高效的文件/目录比较,并灵活处理排除规则,希望对大... 目录案例一:基础目录比较与排除实现案例二:高性能大文件比较案例三:跨平台路径处理案例四:可视化差异报

python之uv使用详解

《python之uv使用详解》文章介绍uv在Ubuntu上用于Python项目管理,涵盖安装、初始化、依赖管理、运行调试及Docker应用,强调CI中使用--locked确保依赖一致性... 目录安装与更新standalonepip 安装创建php以及初始化项目依赖管理uv run直接在命令行运行pytho

Python中yield的用法和实际应用示例

《Python中yield的用法和实际应用示例》在Python中,yield关键字主要用于生成器函数(generatorfunctions)中,其目的是使函数能够像迭代器一样工作,即可以被遍历,但不会... 目录python中yield的用法详解一、引言二、yield的基本用法1、yield与生成器2、yi

Spring Boot 整合 SSE(Server-Sent Events)实战案例(全网最全)

《SpringBoot整合SSE(Server-SentEvents)实战案例(全网最全)》本文通过实战案例讲解SpringBoot整合SSE技术,涵盖实现原理、代码配置、异常处理及前端交互,... 目录Spring Boot 整合 SSE(Server-Sent Events)1、简述SSE与其他技术的对

深度解析Python yfinance的核心功能和高级用法

《深度解析Pythonyfinance的核心功能和高级用法》yfinance是一个功能强大且易于使用的Python库,用于从YahooFinance获取金融数据,本教程将深入探讨yfinance的核... 目录yfinance 深度解析教程 (python)1. 简介与安装1.1 什么是 yfinance?

Python脚本轻松实现检测麦克风功能

《Python脚本轻松实现检测麦克风功能》在进行音频处理或开发需要使用麦克风的应用程序时,确保麦克风功能正常是非常重要的,本文将介绍一个简单的Python脚本,能够帮助我们检测本地麦克风的功能,需要的... 目录轻松检测麦克风功能脚本介绍一、python环境准备二、代码解析三、使用方法四、知识扩展轻松检测麦

Python多线程应用中的卡死问题优化方案指南

《Python多线程应用中的卡死问题优化方案指南》在利用Python语言开发某查询软件时,遇到了点击搜索按钮后软件卡死的问题,本文将简单分析一下出现的原因以及对应的优化方案,希望对大家有所帮助... 目录问题描述优化方案1. 网络请求优化2. 多线程架构优化3. 全局异常处理4. 配置管理优化优化效果1.

C#使用Spire.XLS快速生成多表格Excel文件

《C#使用Spire.XLS快速生成多表格Excel文件》在日常开发中,我们经常需要将业务数据导出为结构清晰的Excel文件,本文将手把手教你使用Spire.XLS这个强大的.NET组件,只需几行C#... 目录一、Spire.XLS核心优势清单1.1 性能碾压:从3秒到0.5秒的质变1.2 批量操作的优雅

MyBatis-Plus 与 Spring Boot 集成原理实战示例

《MyBatis-Plus与SpringBoot集成原理实战示例》MyBatis-Plus通过自动配置与核心组件集成SpringBoot实现零配置,提供分页、逻辑删除等插件化功能,增强MyBa... 目录 一、MyBATis-Plus 简介 二、集成方式(Spring Boot)1. 引入依赖 三、核心机制