ff
This commit is contained in:
@@ -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`);
|
||||
}
|
||||
Reference in New Issue
Block a user