复制excel并选择性删除sheet
1,原始文件为“原始数据.xlsx”,有多列数据,其中“管线号”列有多个不同的【管线号】,对同一【管线号】列,在“工艺卡编号”列也会有多个【工艺卡编号】对应。管线号 焊接类型 工艺卡编号
/TRIM-排污-取样器水槽-N1-40-A1TB52-N 对焊 HKB20-02
/TRIM-排污-取样器水槽-N1-40-A1TB52-N 承插焊 HKC20-02
/TRIM-排污-取样器水槽-N1-40-A1TB52-N 承插焊 HKC20-02
/TRIM-排污-取样器水槽-N1-40-A1TB52-N 承插焊 HKC20-02
/TRIM-排污-取样器水槽-N1-40-A1TB52-N 承插焊 HKC20-02
/TRIM-排污-安全阀及消声器排水-20-A1TB51-N 承插焊 HKC20-02
/TRIM-排污-安全阀及消声器排水-20-A1TB51-N 对焊 HKB20-02
/TRIM-排污-安全阀及消声器排水-20-A1TB51-N 承插焊 HKC20-02
/TRIM-排污-安全阀及消声器排水-20-A1TB51-N 承插焊 HKC20-02
/TRIM-排污-安全阀及消声器排水-20-A1TB51-N 承插焊 HKC20-02
/TRIM-排污-安全阀及消声器排水-20-A1TB51-N 承插焊 HKC20-02
/TRIM-排污-安全阀及消声器排水-20-A1TB51-N 对焊 HKB20-02
/TRIM-排污-安全阀及消声器排水-20-A1TB51-N 承插焊 HKC20-02
/TRIM-排污-安全阀及消声器排水-20-A1TB51-N 承插焊 HKC20-02
/TRIM-排污-安全阀及消声器排水-20-A1TB51-N 承插焊 HKC20-02
/TRIM-排污-安全阀及消声器排水-20-A1TB51-N 承插焊 HKC20-02
/TRIM-排污-排污扩容器V006-C-50-A1TB52-P 对焊 HKB20-02
/TRIM-排污-排污扩容器V006-C-50-A1TB52-P 对焊 HKB20-02
2,对“管线号”列的每个【管线号】,找到模板文件“工艺卡模板.xlsx”并复制,改名为该【管线号】.xlsx
3, 对生成的【管线号】.xlsx,根据对应该管线号的列“工艺卡编号”中“名称为H开头的sheet”,对不在列内的“名称为H开头的sheet”删除 要完成这个任务,可以使用 Python 脚本结合 pandas 和 openpyxl 库来处理 Excel 文件。
1. 读取原始数据文件“原始数据.xlsx”。
2. 对于每个唯一的“管线号”,找到对应的“工艺卡编号”,并检查它们是否以“H”开头。
3. 复制“工艺卡模板.xlsx”文件,并重命名为当前“管线号”。
4. 对于每个重命名的文件,删除不包含在原始数据中的以“H”开头的“工艺卡编号”对应的工作表。
首先,需要安装 pandas 和 openpyxl 库(如果尚未安装):
```bash
pip install pandas openpyxl
```
然后,可以使用以下 Python 脚本:
```python
import pandas as pd
from openpyxl import load_workbook
import os
# 读取原始数据
original_data = pd.read_excel('原始数据.xlsx')
# 遍历每个唯一的管线号
for pipeline in original_data['管线号'].unique():
# 获取当前管线号的所有工艺卡编号
pipeline_data = original_data == pipeline]
工艺卡编号 = pipeline_data['工艺卡编号'].tolist()
# 复制模板文件
template_path = '工艺卡模板.xlsx'
new_file_path = f'{pipeline}.xlsx'
shutil.copy(template_path, new_file_path)
# 加载新的工作簿
wb = load_workbook(new_file_path)
# 遍历工作簿中的所有工作表
for sheet_name in wb.sheetnames:
# 检查工作表是否以'H'开头且在工艺卡编号列表中
if not (sheet_name.startswith('H') and sheet_name in 工艺卡编号):
# 删除不符合条件的工作表
del wb
# 保存新的工作簿
wb.save(new_file_path)
wb.close()
```
页:
[1]