【Python+Excel 02】提取excel表中的某一行,写入另一张表sheet

一、应用背景

昨天完成了CSV文件的读取并将其中的几列写入了EXCEL,今天就来选取一下其中满足条件的行数据,并写入此表中的另一个sheet中。

二、参考文献

《python 读取Excel文件(包括后缀为.xls与.xlsx)》
《用Python对Excel获取sheet、增加sheet、写入单元格数据》
《python合并已经存在的sheet数据到新sheet的方法》
《python中用xlrd和xlwt写入excel,在sheet中先写入的数据被后写入的数据覆盖的问题》

三、代码

代码如下:

from openpyxl import load_workbook
import xlrd
import xlwt
from xlutils.copy import copy

file=
### Python 使用 Pandas 和 Openpyxl 处理 Excel 文件 为了实现将现有 Excel 文件中的特定行复制到新的 Excel 文件中,可以采用两种方法:一种是通过 `Pandas` 库来处理整个过程;一种则是结合使用 `openpyxl` 来加载工作簿并借助 `Pandas` 的强大功能来进行数据筛选与保存。 #### 方法一:仅使用 Pandas 实现指定行的复制 当只需要简单地基于条件或索引范围选取某些行时,可以直接利用 `Pandas` 完成此任务。下面是一个具体的例子: ```python import pandas as pd # 加载原始Excel文件的数据至DataFrame对象 file_path = 'source_file.xlsx' df_source = pd.read_excel(file_path) # 假设要提取第2到第5行(注意:Python索引是从0开始) start_index, end_index = 1, 4 selected_rows_df = df_source.iloc[start_index:end_index+1] # 创建新的Excel文件路径 new_file_path = 'copied_rows_new_file.xlsx' # 将选定的行写入新的Excel文件 with pd.ExcelWriter(new_file_path) as writer: selected_rows_df.to_excel(writer, index=False) ``` 这段代码展示了如何从源文件中选择特定编号的几行,并将其存储在一个全新的 Excel 文档里[^2]。 #### 方法二:结合Openpyxl和Pandas进行更复杂的操作 如果希望保留更多关于原有文档的信息(比如样式),则可以选择先用 `openpyxl` 打开旧的工作簿再配合 `Pandas` 对其内容做进一步加工。这里给出一段示范性的脚本: ```python from openpyxl import load_workbook import pandas as pd original_filepath = "C:\\path\\to\\your_original_file.xlsx" target_filepath = "C:\\path\\to\\destination_file.xlsx" wb = load_workbook(original_filepath) ws = wb.active data_only_copy = [[cell.value for cell in row] for row in ws.iter_rows(min_row=2, max_row=5)] df_copied = pd.DataFrame(data=data_only_copy[1:], columns=data_only_copy[0]) writer = pd.ExcelWriter(target_filepath, engine='openpyxl') df_copied.to_excel(writer, sheet_name="Copied Data", index=False) writer.save() writer.close() ``` 上述代码片段说明了怎样运用 `openpyxl` 载入现有的 `.xlsx` 文件,并从中挑选出所需的若干行作为列形式传递给 `Pandas DataFrame` ,最后再次调用 `Pandas` 提供的功能把这些数据导出为一个独立的电子格文件[^1]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值