|
@@ -1,9 +1,11 @@
|
1
|
1
|
import time
|
|
2
|
+
|
|
3
|
+import openpyxl
|
2
|
4
|
import pandas as pd
|
3
|
5
|
import sqlite3
|
4
|
6
|
import os
|
5
|
7
|
from PySide6.QtWidgets import QMessageBox
|
6
|
|
-from openpyxl.styles import Font, NamedStyle
|
|
8
|
+from openpyxl.styles import Font, NamedStyle, Alignment
|
7
|
9
|
from openpyxl.utils.dataframe import dataframe_to_rows
|
8
|
10
|
|
9
|
11
|
|
|
@@ -64,13 +66,30 @@ def main_function(ui, file_path, utf_en, db_path):
|
64
|
66
|
'Dis_Ass': '变形判定'
|
65
|
67
|
}
|
66
|
68
|
df.rename(columns=column_mapping, inplace=True)
|
|
69
|
+ # 查询 GC_Input_Param 表获取 Correct_Factor 字段
|
|
70
|
+ query_param = "SELECT Correct_Factor FROM GC_Input_Param WHERE TableName=?"
|
|
71
|
+ correct_factor_df = pd.read_sql_query(query_param, conn, params=(utf_en,))
|
67
|
72
|
|
|
73
|
+ correct_factor = correct_factor_df.iloc[0]['Correct_Factor']
|
68
|
74
|
# 创建一个新的 Excel 工作簿
|
69
|
75
|
from openpyxl import Workbook
|
70
|
76
|
wb = Workbook()
|
71
|
77
|
ws = wb.active
|
72
|
|
-
|
73
|
|
- # 将 DataFrame 写入工作表
|
|
78
|
+ # # 在最上面插入一行
|
|
79
|
+ # ws.insert_rows(1)
|
|
80
|
+ # 在E1单元格添加内容“修正系数”
|
|
81
|
+ ws.cell(row=1, column=1, value="序号")
|
|
82
|
+ ws.cell(row=1, column=2, value="结果期数")
|
|
83
|
+ ws.cell(row=1, column=3, value="起点")
|
|
84
|
+ ws.cell(row=1, column=4, value="终点")
|
|
85
|
+ ws.cell(row=1, column=5, value="修正系数")
|
|
86
|
+ ws.cell(row=1, column=6, value=correct_factor)
|
|
87
|
+ ws.cell(row=1, column=7, value="修正数")
|
|
88
|
+ ws.cell(row=1, column=8, value="期间差异")
|
|
89
|
+ ws.cell(row=1, column=9, value="变形判定")
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+# 将 DataFrame 写入工作表
|
74
|
93
|
for r in dataframe_to_rows(df, index=False, header=True):
|
75
|
94
|
ws.append(r)
|
76
|
95
|
|
|
@@ -106,6 +125,16 @@ def main_function(ui, file_path, utf_en, db_path):
|
106
|
125
|
# 设置列宽
|
107
|
126
|
ws.column_dimensions['E'].width = 12
|
108
|
127
|
ws.column_dimensions['F'].width = 12
|
|
128
|
+
|
|
129
|
+ # 保存 Excel 文件之前添加单元格合并操作
|
|
130
|
+ merge_cells = ['A1:A2', 'B1:B2', 'C1:C2', 'D1:D2', 'G1:G2', 'H1:H2', 'I1:I2']
|
|
131
|
+ for cell_range in merge_cells:
|
|
132
|
+ ws.merge_cells(cell_range)
|
|
133
|
+
|
|
134
|
+ # 设置合并单元格后的居中对齐
|
|
135
|
+ for cell_range in merge_cells:
|
|
136
|
+ cell = ws[cell_range.split(':')[0]]
|
|
137
|
+ cell.alignment = Alignment(horizontal='center', vertical='center')
|
109
|
138
|
# 保存 Excel 文件
|
110
|
139
|
excel_filename = f"水准测段高差计算成果表{time.strftime('%Y%m%d_%H%M%S')}.xlsx"
|
111
|
140
|
excel_filepath = os.path.join(export_folder, excel_filename)
|