test / quality_inspection_documentation.py
ChatCausalGPT's picture
Initial commit: Quality Inspection Report Generator
76b7572
"""
质量检验报告生成脚本说明文档
============================
本文档详细说明了 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()