This commit is contained in:
TuanVT
2026-10-26 16:03:54 +07:00
parent a5ef1901da
commit 0d7d204916
28 changed files with 8932 additions and 1287 deletions
+66
View File
@@ -0,0 +1,66 @@
import * as XLSX from "xlsx";
import { SuperTBeamData } from "../core/schema/superT.schema";
export function exportToExcelContract(
beamData: SuperTBeamData,
globalConfig: any,
bridgeData: any,
) {
// 1. Tạo Workbook mới
const workbook = XLSX.utils.book_new();
// 2. Sheet 1: Thông số Dầm Super-T
const beamSheetData = [
["Tham số (Parameter)", "Giá trị (Value)", "Đơn vị (Unit)", "Mô tả"],
["ID", beamData.id, "", "Mã định danh dầm"],
["Code", beamData.code, "", "Mã hiệu dầm"],
["Length", beamData.length, "m", "Chiều dài dầm"],
["Height", beamData.height, "m", "Chiều cao dầm"],
["TopFlangeWidth", beamData.topFlangeWidth, "m", "Chiều rộng cánh trên"],
[
"TopFlangeThickness",
beamData.topFlangeThickness,
"m",
"Chiều dày cánh trên",
],
["WebThickness", beamData.webThickness, "m", "Chiều dày sườn dầm"],
[
"BottomFlangeWidth",
beamData.bottomFlangeWidth,
"m",
"Chiều rộng cánh dưới",
],
[
"BottomFlangeThickness",
beamData.bottomFlangeThickness,
"m",
"Chiều dày cánh dưới",
],
["StrandCount", beamData.strandCount, "sợi", "Số lượng tao cáp DƯL"],
[
"DiaphragmPositions",
beamData.diaphragmPositions.join("; "),
"m",
"Vị trí dầm ngang",
],
];
const beamSheet = XLSX.utils.aoa_to_sheet(beamSheetData);
XLSX.utils.book_append_sheet(workbook, beamSheet, "SuperT_Beam");
// 3. Sheet 2: Cấu hình Chung & Tổng thể Cầu (Alignment & Assembly)
const bridgeSheetData = [
["Tham số (Parameter)", "Giá trị (Value)", "Đơn vị"],
["SpanCount", globalConfig.spanCount, "nhịp"],
["BeamCountPerSpan", globalConfig.beamCountPerSpan, "dầm/nhịp"],
["BeamSpacing", globalConfig.beamSpacing, "mm"],
["DeckWidth", bridgeData.deck.width, "mm"],
["DeckThickness", bridgeData.deck.thickness, "mm"],
["PierHeight", bridgeData.pier.height, "mm"],
["PierDiameter", bridgeData.pier.diameter, "mm"],
];
const bridgeSheet = XLSX.utils.aoa_to_sheet(bridgeSheetData);
XLSX.utils.book_append_sheet(workbook, bridgeSheet, "Bridge_Assembly");
// 4. Tải file Excel về client
XLSX.writeFile(workbook, `TEDI_SuperT_Contract_${Date.now()}.xlsx`);
}