用Python批量提取多个工作簿中同名工作表的特定数据,并存储在新的工作簿中
时间: 2024-04-15 13:29:01 浏览: 97
要将提取的数据存储在新的工作簿中,你可以使用openpyxl库创建一个新的工作簿,并将数据写入该工作簿中。以下是修改后的示例代码:
```python
import os
from openpyxl import load_workbook
from openpyxl import Workbook
def extract_data_from_workbooks(folder_path, sheet_name, data_range, output_path):
output_workbook = Workbook()
output_sheet = output_workbook.active
data = []
for filename in os.listdir(folder_path):
if filename.endswith(".xlsx") or filename.endswith(".xls"):
workbook_path = os.path.join(folder_path, filename)
workbook = load_workbook(workbook_path)
if sheet_name in workbook.sheetnames:
sheet = workbook[sheet_name]
for row in sheet[data_range]:
row_data = [cell.value for cell in row]
data.append(row_data)
workbook.close()
for row in data:
output_sheet.append(row)
output_workbook.save(output_path)
output_workbook.close()
# 示例用法
folder_path = "工作簿文件夹路径"
sheet_name = "目标工作表名称"
data_range = "A1:C10" # 例如提取 A1 到 C10 的数据
output_path = "新工作簿路径.xlsx" # 修改为你想要保存的新工作簿路径
extract_data_from_workbooks(folder_path, sheet_name, data_range, output_path)
```
在示例代码中,我们新增了一个 `output_path` 参数,用于指定新工作簿的保存路径。代码会创建一个新的工作簿对象 `output_workbook`,并在其中创建一个活动工作表 `output_sheet`。提取的数据将会保存在 `data` 列表中,然后按行写入到 `output_sheet` 中。最后,使用 `output_workbook.save(output_path)` 将新工作簿保存到指定路径,并调用 `output_workbook.close()` 关闭工作簿。
记得将代码中的 `folder_path`、`sheet_name`、`data_range` 和 `output_path` 修改为你实际的文件和路径。运行代码后,提取的数据将会保存在新的工作簿中。
阅读全文