File size: 3,404 Bytes
76b7572
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
"""
质量检验报告生成脚本说明文档
============================

本文档详细说明了 generate_quality_inspection_reports.py 的工作原理和数据处理流程。

输入文件
--------
1. 1.xls - 源数据文件,包含以下工作表:
   - HEADER: 包含基本信息如数量和批准人
   - Dimension: 包含尺寸数据和检验日期
   - Sand: 包含化学元素测试数据

2. 2.xlsx - 模板文件,包含:
   - WACKER: 模板工作表,包含预设格式

数据结构
--------
1. Sand表结构(跳过前12行后):
   - 第3列 (索引2): Crucible ID(客户ID)
   - 第5-15列 (索引4-14): 化学元素测试数据
     * Al: 第5列 (索引4)
     * Ca: 第6列 (索引5)
     * Cu: 第7列 (索引6)
     * Fe: 第8列 (索引7)
     * K:  第9列 (索引8)
     * Li: 第10列 (索引9)
     * Mg: 第11列 (索引10)
     * Mn: 第12列 (索引11)
     * Na: 第13列 (索引12)
     * Ti: 第14列 (索引13)
     * Zr: 第15列 (索引14)

2. 输出报告结构:
   - 基本信息(B3-D5):数量、批号、日期等
   - 化学元素数据(D9-D19):对应11种元素的测试结果
   - 尺寸数据(D20-D28):外径、高度、壁厚等
   - 批准信息(D29):批准人姓名

处理流程
--------
1. 数据读取阶段:
   - 读取HEADER表获取基本信息
   - 读取Dimension表获取尺寸数据和日期信息
   - 读取Sand表获取化学元素测试数据
   - 读取模板文件作为基础格式

2. 数据处理阶段:
   - 遍历Dimension表中的每个Customer ID
   - 为每个Customer ID创建新的工作表
   - 复制模板内容保持格式一致
   - 填充基本信息(数量、日期等)
   - 从Sand表匹配并填充化学元素数据
   - 填充尺寸数据
   - 添加批准人信息

3. 数据映射关系:
   a. 元素行号映射 (element_row_mapping):
      - Al -> 第9行
      - Ca -> 第10行
      - Cu -> 第11行
      ...(依此类推)

   b. 元素列索引映射 (element_col_mapping):
      - Al -> 第5列(索引4)
      - Ca -> 第6列(索引5)
      - Cu -> 第7列(索引6)
      ...(依此类推)

注意事项
--------
1. 日期处理:
   - 检验日期格式化为 YYYY-MM-DD
   - 失效日期自动计算为检验日期+730天(2年)

2. 数据验证:
   - 检查Customer ID是否存在于Sand表中
   - 确保所有必要的数据都被正确填充

3. 格式保持:
   - 通过复制模板内容保持原有格式
   - 保持"批准人:"文本的一致性

使用方法
--------
1. 确保输入文件 (1.xls 和 2.xlsx) 在正确的位置
2. 运行脚本:python generate_quality_inspection_reports.py
3. 输出文件将保存为 2_updated.xlsx

输出文件
--------
2_updated.xlsx:包含所有客户的质量检验报告,每个客户一个工作表,
保持了原有的格式并填充了所有必要的数据。
"""

# 示例:如何使用生成的报告
def usage_example():
    print("使用示例:")
    print("1. 准备输入文件:")
    print("   - 确保有1.xls(源数据)")
    print("   - 确保有2.xlsx(模板)")
    print("\n2. 运行脚本:")
    print("   python generate_quality_inspection_reports.py")
    print("\n3. 检查输出:")
    print("   - 查看2_updated.xlsx")
    print("   - 验证每个客户的工作表是否正确生成")

if __name__ == "__main__":
    usage_example()