#!/usr/bin/env python # -*- coding: utf-8 -*- """ 测试表格数据转换为 SQL Server 格式 """ import json from convert_table_to_sqlserver_format import convert_temperature_table_to_sqlserver # 你提供的实际数据(最新版本) test_data = { "tables": [{ "token": "scriptTable1", "startRow": 0, "startCol": 0, "cells": [ {"row": 4, "col": 0, "value": "14.0"}, {"row": 4, "col": 1, "value": "14.2"}, {"row": 4, "col": 2, "value": "14.2"}, {"row": 4, "col": 3, "value": "14.3"}, {"row": 4, "col": 4, "value": "14.1"}, {"row": 4, "col": 5, "value": "13.9"}, {"row": 4, "col": 6, "value": ""}, {"row": 5, "col": 0, "value": "13.7"}, {"row": 5, "col": 1, "value": "13.9"}, {"row": 5, "col": 2, "value": "13.9"}, {"row": 5, "col": 3, "value": "13.9"}, {"row": 5, "col": 4, "value": "13.7"}, {"row": 5, "col": 5, "value": "13.6"}, {"row": 5, "col": 6, "value": ""}, {"row": 6, "col": 0, "value": "14.5"}, {"row": 6, "col": 1, "value": "14.7"}, {"row": 6, "col": 2, "value": "14.8"}, {"row": 6, "col": 3, "value": "14.8"}, {"row": 6, "col": 4, "value": "14.8"}, {"row": 6, "col": 5, "value": "14.7"}, {"row": 6, "col": 6, "value": ""}, {"row": 7, "col": 0, "value": "13.9"}, {"row": 7, "col": 1, "value": "14.1"}, {"row": 7, "col": 2, "value": "14.2"}, {"row": 7, "col": 3, "value": "14.3"}, {"row": 7, "col": 4, "value": "14.2"}, {"row": 7, "col": 5, "value": "14.1"}, {"row": 7, "col": 6, "value": ""}, {"row": 8, "col": 0, "value": "13.8"}, {"row": 8, "col": 1, "value": "14.0"}, {"row": 8, "col": 2, "value": "14.1"}, {"row": 8, "col": 3, "value": "14.2"}, {"row": 8, "col": 4, "value": "14.1"}, {"row": 8, "col": 5, "value": "14.0"}, {"row": 8, "col": 6, "value": ""}, {"row": 9, "col": 0, "value": "12.5"}, {"row": 9, "col": 1, "value": "12.7"}, {"row": 9, "col": 2, "value": "12.8"}, {"row": 9, "col": 3, "value": "12.9"}, {"row": 9, "col": 4, "value": "12.8"}, {"row": 9, "col": 5, "value": "12.7"}, {"row": 9, "col": 6, "value": ""}, {"row": 10, "col": 0, "value": "14.0"}, {"row": 10, "col": 1, "value": "14.2"}, {"row": 10, "col": 2, "value": "14.3"}, {"row": 10, "col": 3, "value": "14.4"}, {"row": 10, "col": 4, "value": "14.3"}, {"row": 10, "col": 5, "value": "14.2"}, {"row": 10, "col": 6, "value": ""}, {"row": 11, "col": 0, "value": "14.8"}, {"row": 11, "col": 1, "value": "15.0"}, {"row": 11, "col": 2, "value": "15.1"}, {"row": 11, "col": 3, "value": "15.2"}, {"row": 11, "col": 4, "value": "15.1"}, {"row": 11, "col": 5, "value": "15.0"}, {"row": 11, "col": 6, "value": ""}, {"row": 12, "col": 0, "value": "13.2"}, {"row": 12, "col": 1, "value": "13.4"}, {"row": 12, "col": 2, "value": "13.5"}, {"row": 12, "col": 3, "value": "13.6"}, {"row": 12, "col": 4, "value": "13.5"}, {"row": 12, "col": 5, "value": "13.3"}, {"row": 12, "col": 6, "value": ""}, {"row": 13, "col": 0, "value": "13.0"}, {"row": 13, "col": 1, "value": "13.3"}, {"row": 13, "col": 2, "value": "13.3"}, {"row": 13, "col": 3, "value": "13.4"}, {"row": 13, "col": 4, "value": "13.3"}, {"row": 13, "col": 5, "value": "13.2"}, {"row": 13, "col": 6, "value": ""}, {"row": 14, "col": 0, "value": "13.1"}, {"row": 14, "col": 1, "value": "13.4"}, {"row": 14, "col": 2, "value": "13.4"}, {"row": 14, "col": 3, "value": "13.5"}, {"row": 14, "col": 4, "value": "13.4"}, {"row": 14, "col": 5, "value": "13.2"}, {"row": 14, "col": 6, "value": ""}, {"row": 15, "col": 0, "value": "14.4"}, {"row": 15, "col": 1, "value": "14.6"}, {"row": 15, "col": 2, "value": "14.7"}, {"row": 15, "col": 3, "value": "14.7"}, {"row": 15, "col": 4, "value": "14.4"}, {"row": 15, "col": 5, "value": "14.3"}, {"row": 15, "col": 6, "value": ""}, {"row": 16, "col": 0, "value": "0.6"}, {"row": 16, "col": 1, "value": "0.6"}, {"row": 16, "col": 2, "value": "0.6"}, {"row": 16, "col": 3, "value": "0.6"}, {"row": 16, "col": 4, "value": "0.6"}, {"row": 16, "col": 5, "value": "0.6"}, {"row": 16, "col": 6, "value": ""}, {"row": 1, "col": 1, "value": "2025-12-05 14:00:00"}, {"row": 1, "col": 3, "value": "2025-12-05 17:30:00"}, {"row": 0, "col": 1, "value": "13.4"} ] }] } print("=" * 80) print("测试表格数据转换为 SQL Server 格式") print("=" * 80) # 准备全局参数(模拟配置) global_params = { 'runin_date': '2025-12-10', 'operator_name': '张三', 'power_end_part_no': 'PWR-600-001', 'motor_speed_rpm': '980' } print("\n全局参数:") for key, value in global_params.items(): print(f" {key}: {value}") # 转换数据 result = convert_temperature_table_to_sqlserver(test_data, "TEST_W2001150", global_params) print("\n转换结果:") print(json.dumps(result, ensure_ascii=False, indent=2)) print("\n" + "=" * 80) print("字段统计:") print("=" * 80) print(f"总字段数: {len(result)}") # 统计各类字段 temp_fields = [k for k in result.keys() if k.startswith('temp_')] other_fields = [k for k in result.keys() if not k.startswith('temp_')] print(f"温度字段数: {len(temp_fields)}") print(f"其他字段数: {len(other_fields)}") print("\n其他字段:") for field in other_fields: print(f" {field}: {result[field]}") print("\n温度字段示例(前10个):") for field in temp_fields[:10]: print(f" {field}: {result[field]}") # 检查是否有缺失的字段 print("\n" + "=" * 80) print("字段完整性检查:") print("=" * 80) expected_parts = [ 'main_1', 'main_2', 'main_3', 'main_4', 'crosshead_1', 'crosshead_2', 'crosshead_3', 'gbox_small_1', 'gbox_small_2', 'gbox_big_3', 'gbox_big_4' ] expected_times = ['t05', 't10', 't15', 't20', 't25', 't30', 't35'] missing_fields = [] for part in expected_parts: for time in expected_times: field = f"temp_{part}_{time}" if field not in result: missing_fields.append(field) if missing_fields: print(f"⚠️ 缺失 {len(missing_fields)} 个字段:") for field in missing_fields[:10]: print(f" - {field}") if len(missing_fields) > 10: print(f" ... 还有 {len(missing_fields) - 10} 个") else: print("✅ 所有温度字段都已转换") print("\n" + "=" * 80)