From 14f61e24947fb92dd71ec0a7196a6e815f8e66da Mon Sep 17 00:00:00 2001
From: dujinkim <dujin.kim@dtsolution.co.kr>
Date: Mon, 21 Jul 2025 07:54:26 +0000
Subject: (최겸)기술영업 RFQ 담당자 초대, 요구사항 반영
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 lib/items-tech/table/top/item-excel-template.tsx | 218 +++++++++++------------
 1 file changed, 109 insertions(+), 109 deletions(-)

(limited to 'lib/items-tech/table/top/item-excel-template.tsx')

diff --git a/lib/items-tech/table/top/item-excel-template.tsx b/lib/items-tech/table/top/item-excel-template.tsx
index b67d91be..9121d70f 100644
--- a/lib/items-tech/table/top/item-excel-template.tsx
+++ b/lib/items-tech/table/top/item-excel-template.tsx
@@ -1,109 +1,109 @@
-import * as ExcelJS from 'exceljs';
-import { saveAs } from "file-saver";
-
-
-/**
- * 해양 TOP 아이템 데이터 가져오기를 위한 Excel 템플릿 파일 생성 및 다운로드
- */
-export async function exportTopItemTemplate() {
-  // 워크북 생성
-  const workbook = new ExcelJS.Workbook();
-  workbook.creator = 'Offshore TOP Item Management System';
-  workbook.created = new Date();
-  
-  // 워크시트 생성
-  const worksheet = workbook.addWorksheet('해양 TOP 아이템');
-
-  // 컬럼 헤더 정의 및 스타일 적용
-  worksheet.columns = [
-    { header: '자재 그룹', key: 'itemCode', width: 15 },
-    { header: '기능(공종)', key: 'workType', width: 15 },
-    { header: '자재명', key: 'itemList', width: 20 },
-    { header: '자재명(상세)', key: 'subItemList', width: 20 },
-
-  ];
-
-  // 헤더 스타일 적용
-  const headerRow = worksheet.getRow(1);
-  headerRow.font = { bold: true };
-  headerRow.fill = {
-    type: 'pattern',
-    pattern: 'solid',
-    fgColor: { argb: 'FFE0E0E0' }
-  };
-  headerRow.alignment = { vertical: 'middle', horizontal: 'center' };
-
-  // 테두리 스타일 적용
-  headerRow.eachCell((cell) => {
-    cell.border = {
-      top: { style: 'thin' },
-      left: { style: 'thin' },
-      bottom: { style: 'thin' },
-      right: { style: 'thin' }
-    };
-  });
-
-  // 샘플 데이터 추가
-  const sampleData = [
-    { 
-      itemCode: 'TOP001',
-      workType: 'TM',
-      itemList: '항목1 샘플 데이터',
-      subItemList: '항목2 샘플 데이터',
-    },
-    { 
-      itemCode: 'TOP002',
-      workType: 'TS',
-      itemList: '항목1 샘플 데이터',
-      subItemList: '항목2 샘플 데이터',
-    }
-    
-  ];
-
-  // 데이터 행 추가
-  sampleData.forEach(item => {
-    worksheet.addRow(item);
-  });
-
-  // 데이터 행 스타일 적용
-  worksheet.eachRow((row, rowNumber) => {
-    if (rowNumber > 1) { // 헤더를 제외한 데이터 행
-      row.eachCell((cell) => {
-        cell.border = {
-          top: { style: 'thin' },
-          left: { style: 'thin' },
-          bottom: { style: 'thin' },
-          right: { style: 'thin' }
-        };
-      });
-    }
-  });
-
-
-  // 워크시트 보호 (선택적)
-  worksheet.protect('', {
-    selectLockedCells: true,
-    selectUnlockedCells: true,
-    formatColumns: true,
-    formatRows: true,
-    insertColumns: false,
-    insertRows: true,
-    insertHyperlinks: false,
-    deleteColumns: false,
-    deleteRows: true,
-    sort: true,
-    autoFilter: true,
-    pivotTables: false
-  });
-
-  try {
-    // 워크북을 Blob으로 변환
-    const buffer = await workbook.xlsx.writeBuffer();
-    const blob = new Blob([buffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
-    saveAs(blob, 'offshore-top-item-template.xlsx');
-    return true;
-  } catch (error) {
-    console.error('Excel 템플릿 생성 오류:', error);
-    throw error;
-  }
-}
+import * as ExcelJS from 'exceljs';
+import { saveAs } from "file-saver";
+
+
+/**
+ * 해양 TOP 아이템 데이터 가져오기를 위한 Excel 템플릿 파일 생성 및 다운로드
+ */
+export async function exportTopItemTemplate() {
+  // 워크북 생성
+  const workbook = new ExcelJS.Workbook();
+  workbook.creator = 'Offshore TOP Item Management System';
+  workbook.created = new Date();
+  
+  // 워크시트 생성
+  const worksheet = workbook.addWorksheet('해양 TOP 아이템');
+
+  // 컬럼 헤더 정의 및 스타일 적용
+  worksheet.columns = [
+    { header: '자재 그룹', key: 'itemCode', width: 15 },
+    { header: '기능(공종)', key: 'workType', width: 15 },
+    { header: '자재명', key: 'itemList', width: 20 },
+    { header: '자재명(상세)', key: 'subItemList', width: 20 },
+
+  ];
+
+  // 헤더 스타일 적용
+  const headerRow = worksheet.getRow(1);
+  headerRow.font = { bold: true };
+  headerRow.fill = {
+    type: 'pattern',
+    pattern: 'solid',
+    fgColor: { argb: 'FFE0E0E0' }
+  };
+  headerRow.alignment = { vertical: 'middle', horizontal: 'center' };
+
+  // 테두리 스타일 적용
+  headerRow.eachCell((cell) => {
+    cell.border = {
+      top: { style: 'thin' },
+      left: { style: 'thin' },
+      bottom: { style: 'thin' },
+      right: { style: 'thin' }
+    };
+  });
+
+  // 샘플 데이터 추가
+  const sampleData = [
+    { 
+      itemCode: 'TOP001',
+      workType: 'TM',
+      itemList: '항목1 샘플 데이터',
+      subItemList: '항목2 샘플 데이터',
+    },
+    { 
+      itemCode: 'TOP002',
+      workType: 'TS',
+      itemList: '항목1 샘플 데이터',
+      subItemList: '항목2 샘플 데이터',
+    }
+    
+  ];
+
+  // 데이터 행 추가
+  sampleData.forEach(item => {
+    worksheet.addRow(item);
+  });
+
+  // 데이터 행 스타일 적용
+  worksheet.eachRow((row, rowNumber) => {
+    if (rowNumber > 1) { // 헤더를 제외한 데이터 행
+      row.eachCell((cell) => {
+        cell.border = {
+          top: { style: 'thin' },
+          left: { style: 'thin' },
+          bottom: { style: 'thin' },
+          right: { style: 'thin' }
+        };
+      });
+    }
+  });
+
+
+  // 워크시트 보호 (선택적)
+  worksheet.protect('', {
+    selectLockedCells: true,
+    selectUnlockedCells: true,
+    formatColumns: true,
+    formatRows: true,
+    insertColumns: false,
+    insertRows: true,
+    insertHyperlinks: false,
+    deleteColumns: false,
+    deleteRows: true,
+    sort: true,
+    autoFilter: true,
+    pivotTables: false
+  });
+
+  try {
+    // 워크북을 Blob으로 변환
+    const buffer = await workbook.xlsx.writeBuffer();
+    const blob = new Blob([buffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
+    saveAs(blob, 'offshore-top-item-template.xlsx');
+    return true;
+  } catch (error) {
+    console.error('Excel 템플릿 생성 오류:', error);
+    throw error;
+  }
+}
-- 
cgit v1.2.3

