首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
案例01 提取文件夹中所有工作簿的文件名
案例02 批量新建并保存多个工作簿
案例03 打开文件夹下的所有工作簿
案例04 批量重命名多个工作簿
案例05 批量转换工作簿的文件格式
案例06 将多个工作簿合并为一个工作簿
案例07 按照扩展名分类工作簿
案例08 按照日期分类工作簿
案例09 按关键词查找工作簿
案例10 保护一个工作簿的结构
案例11 读取一个工作簿中所有工作表的名称
案例12 在多个工作簿中批量新增工作表
案例13 在多个工作簿中批量删除工作表
案例14 重命名一个工作簿中的所有工作表
案例15 将一个工作表中的数据分组拆分为多个工作表
案例16 合并多个工作表中的数据
案例17 批量打印工作表
案例18 根据单元格内容自动调整行高和列宽
案例19 在多个工作簿的同名工作表中追加行数据
案例20 将工作表中的一列拆分为多列
案例21 合并内容相同的连续单元格
案例22 批量删除多个工作表中的重复行
案例23 批量在单元格中输入公式
案例24 批量复制/粘贴单元格格式
案例25 排序多个工作簿中所有工作表的数据
案例26 排序多个工作簿中的同名工作表数据
案例27 筛选一个工作簿中所有工作表的数据
案例28 让数据筛选可视化
案例29 打包为可执行文件
案例30 分类汇总多个工作表中的数据
案例31 批量制作数据透视表
案例32 批量标记最大值和最小值
案例33 绘制柱形图
案例34 绘制饼图
案例35 绘制折线图
案例36 绘制动态条形图
案例37 绘制可交互的旭日图
案例38 在一张画布中绘制多个图表
案例39 绘制组合图表
案例40 在多个工作表中插入图表
当前位置:
首页>>
技术小册>>
python与ChatGPT让excel高效办公(下)
小册名称:python与ChatGPT让excel高效办公(下)
### 案例02 批量新建并保存多个工作簿 #### 引言 在日常办公和数据处理中,经常需要处理大量数据并分别保存在不同的Excel工作簿中。手动逐一创建并保存这些工作簿不仅效率低下,还容易出错。幸运的是,Python结合其强大的库,如`pandas`和`openpyxl`,可以自动化这一过程,极大地提高工作效率。本章节将详细介绍如何使用Python和ChatGPT(虽然ChatGPT本身不直接执行代码,但我们可以利用其自然语言理解能力来辅助规划或解释代码逻辑)来批量新建并保存多个Excel工作簿。 #### 环境准备 在开始之前,请确保你的Python环境已经安装了以下库: - `pandas`:用于数据处理。 - `openpyxl`:用于读写Excel 2010 xlsx/xlsm/xltx/xltm文件。 如果未安装,可以通过pip安装它们: ```bash pip install pandas openpyxl ``` #### 思路分析 要实现批量新建并保存多个工作簿,我们首先需要确定以下几个关键点: 1. **数据源**:从哪里获取数据?是单个大数据集需要分割,还是多个独立的数据集? 2. **分割逻辑**:如何决定每个工作簿的内容?基于行数、列数、特定条件等。 3. **文件命名**:如何为每个工作簿命名? 4. **循环执行**:如何编写循环来自动化这个过程。 #### 示例实现 假设我们有一个包含员工信息的CSV文件,每个部门的数据需要保存在一个单独的工作簿中。CSV文件结构如下: ``` 姓名,部门,职位,年龄 张三,销售,经理,30 李四,技术,工程师,28 王五,销售,销售代表,25 赵六,人力资源,招聘专员,27 ``` ##### 步骤1:读取数据 首先,使用`pandas`读取CSV文件。 ```python import pandas as pd # 读取CSV文件 data = pd.read_csv('employees.csv') ``` ##### 步骤2:按部门分割数据 然后,我们根据“部门”列将数据分割成多个DataFrame。 ```python # 按部门分组 grouped = data.groupby('部门') ``` ##### 步骤3:创建并保存工作簿 接下来,我们遍历分组后的数据,为每个部门创建一个新的Excel工作簿并保存。 ```python from openpyxl import Workbook # 遍历每个部门 for department, dept_data in grouped: # 创建一个新的工作簿 wb = Workbook() ws = wb.active ws.title = '员工信息' # 将DataFrame写入工作表 for r in dataframe_to_rows(dept_data, index=False, header=True): ws.append(r) # 保存工作簿 filename = f"{department}_员工信息.xlsx" wb.save(filename) print(f"已保存 {filename}") # 辅助函数,将DataFrame转换为适合写入Excel的行列表 def dataframe_to_rows(df, index=True, header=True): columns = list(df.columns) if header: yield [column for column in columns] for index, series in df.iterrows(): yield [series[column] for column in columns] ``` 注意:在实际应用中,`dataframe_to_rows`函数可能不是最高效的写入方式,特别是对于大型数据集。这里为了展示过程,我们使用了简单直观的方法。对于大规模数据,推荐使用`pandas`的`ExcelWriter`类。 ##### 使用`pandas`的`ExcelWriter`优化写入 为了提高效率,特别是当处理大型数据集时,我们可以使用`pandas`的`ExcelWriter`来一次性写入多个工作表到同一个Excel文件(尽管这里我们想要的是多个文件,但了解这一点对于处理更复杂情况很有帮助)。对于本例,我们仍然分别保存每个工作簿,但可以借鉴其高效写入数据的方法。 ```python with pd.ExcelWriter('temp_workbook.xlsx', engine='openpyxl') as writer: # 注意:这里仅为示例说明 for department, dept_data in grouped: dept_data.to_excel(writer, sheet_name=department, index=False) # 注意:这里并不真正保存每个部门为一个独立文件,而是展示了如何使用ExcelWriter # 但为了分别保存,我们仍使用之前的循环和保存逻辑 ``` #### 注意事项 - 在处理大型数据集时,注意内存使用情况,避免一次性加载所有数据到内存中。 - 确保文件命名不会发生冲突,尤其是在批量生成时。 - 根据实际需求调整工作簿的保存路径和文件名格式。 - 考虑到数据的敏感性和隐私性,在保存文件时要确保遵守相关的数据保护法规。 #### 结语 通过本案例,我们学习了如何使用Python和`pandas`、`openpyxl`库来批量新建并保存多个Excel工作簿。这种方法极大地提高了数据处理的自动化程度,使得从数据准备到报告生成的整个过程更加高效和准确。希望读者能够掌握这一技能,并在实际工作中灵活运用,提升工作效率。
上一篇:
案例01 提取文件夹中所有工作簿的文件名
下一篇:
案例03 打开文件夹下的所有工作簿
该分类下的相关小册推荐:
玩转ChatGPT:秒变AI提问和追问高手(下)
AI 时代的软件工程
ChatGLM3大模型本地化部署、应用开发与微调(下)
与AI对话:ChatGPT提示工程揭秘
AI 大模型系统实战
人工智能基础——基于Python的人工智能实践(中)
AI-Agent智能应用实战(下)
ChatGPT与提示工程(下)
巧用ChatGPT快速搞定数据分析
区块链权威指南(中)
PyTorch 自然语言处理
用ChatGPT轻松玩转机器学习与深度学习