let default_font = "Times New Roman"; let myBorder = { aroundThin : { top: {style:'thin'}, left: {style:'thin'}, bottom: {style:'thin'}, right: {style:'thin'}}, thin1 : { left: {style:'thin'}, bottom: {style:'thin'}, }, thin2 : { bottom: {style:'thin'},}, thin3 : { bottom: {style:'thin'}, right: {style:'thin'}}, thin4 : { left: {style:'thin'}, }, thin6 : { right: {style:'thin'}}, thin7 : { top: {style:'thin'}, left: {style:'thin'}, }, thin8 : { top: {style:'thin'}, }, thin9 : { top: {style:'thin'}, right: {style:'thin'}}, thin123 : { left: {style:'thin'}, bottom: {style:'thin'}, right: {style:'thin'}}, thin789 : { top: {style:'thin'}, left: {style:'thin'}, right: {style:'thin'}}, aroundThick : { top: {style:'thick'}, left: {style:'thick'}, bottom: {style:'thick'}, right: {style:'thick'}}, thick1 : { left: {style:'thick'}, bottom: {style:'thick'}, }, thick2 : { bottom: {style:'thick'},}, thick3 : { bottom: {style:'thick'}, right: {style:'thick'}}, thick4 : { left: {style:'thick'}, }, thick6 : { right: {style:'thick'}}, thick7 : { top: {style:'thick'}, left: {style:'thick'}, }, thick8 : { top: {style:'thick'}, }, thick9 : { top: {style:'thick'}, right: {style:'thick'}}, aroundMedium : { top: {style:'medium'}, left: {style:'medium'}, bottom: {style:'medium'}, right: {style:'medium'}}, medium1 : { left: {style:'medium'}, bottom: {style:'medium'}, }, medium2 : { bottom: {style:'medium'},}, medium3 : { bottom: {style:'medium'}, right: {style:'medium'}}, medium4 : { left: {style:'medium'}, }, medium6 : { right: {style:'medium'}}, medium7 : { top: {style:'medium'}, left: {style:'medium'}, }, medium8 : { top: {style:'medium'}, }, medium9 : { top: {style:'medium'}, right: {style:'medium'}}, medium123 : { left: {style:'medium'}, bottom: {style:'medium'}, right: {style:'medium'}}, medium789 : { top: {style:'medium'}, left: {style:'medium'}, right: {style:'medium'}}, sumRow : { top: {style:'medium'}, left: {style:'thin'}, bottom: {style:'medium'}, right: {style:'thin'}}, } let mystyle = { algCenter: {horizontal: 'center', vertical: 'middle', wrapText: true}, algCenter_wtf: {horizontal: 'center', vertical: 'middle', wrapText: false}, algLeft: {horizontal: 'left', vertical: 'middle', wrapText: true}, algLeft_wrf: {horizontal: 'left', vertical: 'middle', wrapText: false}, algRight: {horizontal: 'right', vertical: 'middle', wrapText: true}, } let myFill = { fillInput : {type: 'pattern', pattern: 'solid', fgColor: {argb: 'FCD5B4'}}, fillInput2 : {type: 'pattern', pattern: 'solid', fgColor: {argb: 'FDE9D9'}}, fillBlue : {type: 'pattern', pattern: 'solid', fgColor: {argb: 'C5D9F1'}}, fillYellow : {type: 'pattern', pattern: 'solid', fgColor: {argb: 'FFFF00'}}, } let dfont = {size: 11, name: default_font, bold: true,}, tfont1 = {size: 9, name: default_font,}, tfont2 = {size: 10, name: default_font,}, tfont3 = {size: 11, name: default_font, bold: true,}, tfont4 = {size: 11, name: default_font,}, lfont = {size: 12, name: 'HY헤드라인M',}, lifont = {size: 10, name: default_font,}, lifontSum = {size: 11, name: default_font,}, bFont9 = {size: 9, name: default_font,}, bFont10 = {size: 10, name: default_font,}, bFont11 = {size: 11, name: default_font,}, sfont = {size: 20, name: default_font, underline:true,}; let nRow = null, nCell = null; getEstiExcel = async ( filename, title ) => { if (typeof ExcelJS == "undefined") return false; filename = filename || "noname.xlsx"; title = title || "제목을 입력하지 않았습니다."; filename = filename.replace(/[\*\?\:\\\/\[\]]/, ''); const workBook = new ExcelJS.Workbook(); workBook.creator = "스틸코리아 MES (http://mes.steelkorea.kr)"; workBook.subject = "스틸코리아 MES - " + title; workBook.title = "스틸코리아 MES - " + title; workBook.description = "STEELKOREA MES - " + title; workBook.keywords = "http://mes.steelkorea.kr - " + title; workBook.catetory = "스틸코리아 MES"; workBook.company = "스틸코리아 MES (mes.steelkorea.kr)"; getSheet(workBook, '단조견적22'); workBook.xlsx.writeBuffer().then((data) => { let blob = new Blob([data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }), url = window.URL.createObjectURL(blob), anchor = document.createElement('a'); anchor.href = url; anchor.download = filename; anchor.click(); window.URL.revokeObjectURL(url); }); }; getApplyRow = (row) => { let aCellArr = []; for (let i = 0; i < 9; i++) { aCellArr.push(row.getCell(i+1)); } return aCellArr; } getSheet = ( wbook, sheetname ) => { sheetname = sheetname; let tSumRow = 35; let workSheet = wbook.addWorksheet(sheetname,{ pageSetup: { paperSize: 9, fitToPage: true, horizontalCentered: true, margins: { left : 0.28, right : 0.28, top : 0.88, bottom: 0.64, header: 0.48, footer: 0.52, }, }, properties: {defaultRowHeight: 15,}, }); workSheet.columns = [ { width: 7.56, style: { alignment:{ vertical: 'middle', horizontal: 'left', }, font: {size:11, name:default_font}, }, }, { width: 7.89, style: { alignment:{ vertical: 'middle', horizontal: 'left', }, font: {size:11, name:default_font}, }, }, { width: 7.89, style: { alignment:{ vertical: 'middle', horizontal: 'left', }, font: {size:11, name:default_font}, }, }, { width: 7.89, style: { alignment:{ vertical: 'middle', horizontal: 'left', }, font: {size:11, name:default_font}, }, }, { width: 9.22, style: { alignment:{ vertical: 'middle', horizontal: 'left', }, font: {size:11, name:default_font}, }, }, { width: 7.56, style: { alignment:{ vertical: 'middle', horizontal: 'left', }, font: {size:11, name:default_font}, }, }, { width: 8.56, style: { alignment:{ vertical: 'middle', horizontal: 'left', }, font: {size:11, name:default_font}, }, }, { width: 9.22, style: { alignment:{ vertical: 'middle', horizontal: 'left', }, font: {size:11, name:default_font}, }, }, { width: 11.56, style: { alignment:{ vertical: 'middle', horizontal: 'left', }, font: {size:11, name:default_font}, }, }, ]; nRow = workSheet.getRow(1); nRow.height = 33; nRow = workSheet.getRow(2); nRow.height = 10.05; nRow = workSheet.getRow(3); nCell = nRow.getCell('C'); nCell.value = { richText: [{ text: '30 Mieumsandan 2-ro, 16beon-gil Ganseo-gu Busan Korea', font: {size: 11, name: default_font} }] }; nCell.alignment = mystyle.algLeft_wrf; nRow = workSheet.getRow(4); nCell = nRow.getCell('C'); nCell.value = { richText: [{ text: 'Tel.:+82 70 5020 5459(Dir.) Fax.:+82 51-714-0888', font: {size: 11, name: default_font} }] }; nCell.alignment = mystyle.algLeft_wrf; nRow = workSheet.getRow(5); nCell = nRow.getCell('C'); nCell.value = { richText: [{ text: 'E-mail : steelkorea@steelkorea.kr Web Site : www.steelkorea.kr', font: {size: 11, name: default_font} }] }; nCell.alignment = mystyle.algLeft_wrf; nRow = workSheet.getRow(6); nRow.height = 42.75; nCell = nRow.getCell('A'); nCell.value = { richText: [{ text: 'OFFER SHEET', font: {size: 22, name: default_font, bold:true} }] }; nCell.alignment = mystyle.algCenter; workSheet.mergeCells('A6:I6'); nCell.border = { top: {style:'double'}, bottom: {style:'double'},} nRow = workSheet.getRow(7); nRow.height = 18.75; nCell = nRow.getCell('A'); nCell.value = { richText: [{ text: 'Customer :', font: {size: 11, name: default_font} }] }; nCell.alignment = mystyle.algLeft; nRow = workSheet.getRow(7); nCell = nRow.getCell('B'); nCell.value = { richText: [{ text: 'BP_NM', font: {size: 11, name: default_font} }] }; nCell.alignment = mystyle.algLeft; nCell.fill = myFill.fillInput; workSheet.mergeCells('B7:E7'); nRow = workSheet.getRow(7); nCell = nRow.getCell('F'); nCell.value = { richText: [{ text: 'Date : ', font: {size: 11, name: default_font} }] }; nCell.alignment = mystyle.algLeft; nRow = workSheet.getRow(7); nCell = nRow.getCell('G'); nCell.value = { richText: [{ text: 'EST_DATE', font: {size: 11, name: default_font} }] }; nCell.alignment = mystyle.algLeft; nCell.fill = myFill.fillInput; workSheet.mergeCells('G7:I7'); nRow = workSheet.getRow(8); nCell = nRow.getCell('A'); nCell.value = { richText: [{ text: 'Attn. : ', font: {size: 11, name: default_font} }] }; nCell.alignment = mystyle.algLeft; nRow = workSheet.getRow(8); nCell = nRow.getCell('B'); nCell.value = { richText: [{ text: 'BP_PRSN_NM', font: {size: 11, name: default_font} }] }; nCell.alignment = mystyle.algLeft; nCell.fill = myFill.fillInput; workSheet.mergeCells('B8:E8'); nRow = workSheet.getRow(8); nCell = nRow.getCell('F'); nCell.value = { richText: [{ text: 'Offer No.:', font: {size: 11, name: default_font} }] }; nCell.alignment = mystyle.algLeft; nRow = workSheet.getRow(8); nCell = nRow.getCell('G'); nCell.value = { richText: [{ text: 'EST_UID', font: {size: 11, name: default_font} }] }; nCell.alignment = mystyle.algLeft; nCell.fill = myFill.fillInput; workSheet.mergeCells('G8:I8'); nRow = workSheet.getRow(9); nCell = nRow.getCell('A'); nCell.value = { richText: [{ text: 'Your Ref. No. :', font: {size: 11, name: default_font} }] }; nCell.alignment = mystyle.algLeft; workSheet.mergeCells('A9:B9'); nRow = workSheet.getRow(9); nCell = nRow.getCell('C'); nCell.value = { richText: [{ text: 'UR_REF_NO', font: {size: 11, name: default_font} }] }; nCell.fill = myFill.fillInput; nCell.alignment = mystyle.algRight; nRow = workSheet.getRow(10); nRow.height = 16.5; nCell = nRow.getCell('A'); nCell.value = { richText: [{ text: 'Total Amount : CURRENCY_CD' , font: {size: 11, name: default_font,} }] }; nCell.alignment = mystyle.algLeft; workSheet.mergeCells('A10:B11'); nRow = workSheet.getRow(10); nCell = nRow.getCell('C'); // currency(sumEa, {symbol: '', decimal: ',', precision:0}).format(), nCell.value = {formula: 'H'+tSumRow, richText: [{ font: {size: 11, name: default_font, bold: true, } }] }; nCell.numFmt = '#,##0'; nCell.alignment = mystyle.algLeft; workSheet.mergeCells('C10:D11'); nRow = workSheet.getRow(10); nCell = nRow.getCell('F'); nCell.value = { richText: [{ text: 'Contact person: EMP_NM', font: {size: 11, name: default_font, } }] }; nCell.alignment = mystyle.algCenter_wtf; nRow = workSheet.getRow(11); nRow.height = 12.75; nRow = workSheet.getRow(12); nCell = nRow.getCell('A'); nCell.value = { richText: [{ text: 'We are pleased to offer the under-mentioned article(s) as per following conditions and details.', font: {size: 10, name: default_font, bold:true,} }] }; nCell.alignment = mystyle.algLeft_wrf; let aCells = getApplyRow(nRow); aCells.forEach(cell => { cell.border = { top: {style:'thin'}, bottom: {style:'medium'},} }) nRow = workSheet.getRow(12); nCell = nRow.getCell('I'); nCell.value = { richText: [{ text: 'Currency : EURO', font: {size: 11, name: default_font, } }] }; nCell.alignment = mystyle.algLeft; // 상세 테이블 //헤더 nRow = workSheet.getRow(13); nCell = nRow.getCell('A'); nCell.value = { richText: [{ text: 'No.', font: bFont10 }] }; nCell.alignment = mystyle.algCenter; workSheet.mergeCells('A13:A14'); nRow.getCell('A').border = { top: {style:'medium'}, left: {style:'medium'}, bottom: {style:'thin'}, right: {style:'thin'}}; nCell.fill = myFill.fillBlue; nRow = workSheet.getRow(13); nCell = nRow.getCell('B'); nCell.value = { richText: [{ text: 'Description (size/mm)', font: bFont10 }] }; nCell.alignment = mystyle.algCenter; workSheet.mergeCells('B13:D13'); nRow.getCell('B').border = { top: {style:'medium'}, left: {style:'thin'}, bottom: {style:'thin'}, right: {style:'thin'}}; nCell.fill = myFill.fillBlue; nRow = workSheet.getRow(14); nCell = nRow.getCell('B'); nCell.value = { richText: [{ text: 'OD', font: bFont10 }] }; nCell.alignment = mystyle.algCenter; nRow.getCell('B').border = myBorder.aroundThin; nCell.fill = myFill.fillBlue; nRow = workSheet.getRow(14); nCell = nRow.getCell('C'); nCell.value = { richText: [{ text: 'ID', font: bFont10 }] }; nCell.alignment = mystyle.algCenter; nRow.getCell('C').border = myBorder.aroundThin; nCell.fill = myFill.fillBlue; nRow = workSheet.getRow(14); nCell = nRow.getCell('D'); nCell.value = { richText: [{ text: 'T/L', font: bFont10 }] }; nCell.alignment = mystyle.algCenter; nRow.getCell('D').border = myBorder.aroundThin; nCell.fill = myFill.fillBlue; nRow = workSheet.getRow(13); nCell = nRow.getCell('E'); nCell.value = { richText: [{ text: 'Material', font: bFont10 }] }; nCell.alignment = mystyle.algCenter; workSheet.mergeCells('E13:E14'); nRow.getCell('E').border = { top: {style:'medium'}, left: {style:'thin'}, bottom: {style:'thin'}, right: {style:'thin'}}; nCell.fill = myFill.fillBlue; nRow = workSheet.getRow(13); nCell = nRow.getCell('F'); nCell.value = { richText: [{ text: 'Q\'ty', font: bFont10 }] }; nCell.alignment = mystyle.algCenter; workSheet.mergeCells('F13:F14'); nRow.getCell('F').border = { top: {style:'medium'}, left: {style:'thin'}, bottom: {style:'thin'}, right: {style:'thin'}}; nCell.fill = myFill.fillBlue; nRow = workSheet.getRow(13); nCell = nRow.getCell('G'); nCell.value = { richText: [{ text: 'U/Price', font: bFont10 }] }; nCell.alignment = mystyle.algCenter; workSheet.mergeCells('G13:G14'); nRow.getCell('G').border = { top: {style:'medium'}, left: {style:'thin'}, bottom: {style:'thin'}, right: {style:'thin'}}; nCell.fill = myFill.fillBlue; nRow = workSheet.getRow(13); nCell = nRow.getCell('H'); nCell.value = { richText: [{ text: 'Amount', font: bFont10 }] }; nCell.alignment = mystyle.algCenter; workSheet.mergeCells('H13:H14'); nRow.getCell('H').border = { top: {style:'medium'}, left: {style:'thin'}, bottom: {style:'thin'}, right: {style:'thin'}}; nCell.fill = myFill.fillBlue; nRow = workSheet.getRow(13); nCell = nRow.getCell('I'); nCell.value = { richText: [{ text: 'Remark', font: bFont10 }] }; nCell.alignment = mystyle.algCenter; workSheet.mergeCells('I13:I14'); nRow.getCell('I').border = { top: {style:'medium'}, left: {style:'thin'}, bottom: {style:'thin'}, right: {style:'thin'}}; nCell.fill = myFill.fillBlue; // 상세 견적내용 let itnum = 15; for (let i = 0; i < 10; i++ ) { nRow = workSheet.getRow(itnum); aCells = getApplyRow(nRow); aCells.forEach(cell => { cell.border = myBorder.aroundThin; }) nCell = nRow.getCell('A'); nCell.value = { richText: [{ text: i + 1, font: bFont10 }] }; nCell.alignment = mystyle.algCenter; nCell = nRow.getCell('B'); nCell.value = '0'; nCell.numFmt = '#,##0.0'; nCell.alignment = mystyle.algCenter; nCell.font = bFont10; nCell = nRow.getCell('C'); nCell.value = '0'; nCell.numFmt = '#,##0.0'; nCell.alignment = mystyle.algCenter; nCell.font = bFont10; nCell = nRow.getCell('D'); nCell.value = '0'; nCell.numFmt = '#,##0.0'; nCell.alignment = mystyle.algCenter; nCell.font = bFont10; nCell = nRow.getCell('E'); nCell.value = { richText: [{ text: '라', font: bFont10 }] }; nCell.alignment = mystyle.algCenter; nCell = nRow.getCell('F'); nCell.value = '0'; nCell.numFmt = '#,##0'; nCell.alignment = mystyle.algRight; nCell.font = bFont10; nCell = nRow.getCell('G'); nCell.value = '0'; nCell.numFmt = '#,##0'; nCell.alignment = mystyle.algRight; nCell.font = bFont10; nCell = nRow.getCell('H'); nCell.value = 0; nCell.numFmt = '#,##0'; nCell.alignment = mystyle.algRight; nCell.font = bFont10; nCell = nRow.getCell('I'); nCell.value = { richText: [{ text: 'AA', font: bFont10 }] }; nCell.alignment = mystyle.algCenter; itnum++; } if (itnum < 31) { for (let i = itnum; i <= 31; i++) { nRow = workSheet.getRow(i); aCells = getApplyRow(nRow); aCells.forEach(cell => { cell.border = myBorder.aroundThin; }) nCell = nRow.getCell('A'); nCell.value = ''; nCell = nRow.getCell('B'); nCell.value = ''; nCell = nRow.getCell('C'); nCell.value = ''; nCell = nRow.getCell('D'); nCell.value = ''; nCell = nRow.getCell('E'); nCell.value = ''; nCell = nRow.getCell('F'); nCell.value = ''; nCell = nRow.getCell('G'); nCell.value = ''; nCell = nRow.getCell('H'); nCell.value = ''; nCell = nRow.getCell('I'); nCell.value = ''; } } // 합계 let sumRow = 32; if (itnum > 31) { sumRow = itnum } let totalStr = 'TOTAL'; let totalStr2 = 'G.TOTAL'; nRow = workSheet.getRow(sumRow); nRow.height = 24; nCell = nRow.getCell('A'); nCell.value = {richText: [{text: totalStr, font: bFont9}]}; nCell.alignment = mystyle.algRight; workSheet.mergeCells('A' + sumRow + ':E' + sumRow); nRow.getCell('A').border = { top: {style: 'thin'}, left: {style: 'medium'}, bottom: {style: 'medium'}, right: {style: 'thin'} }; nCell.fill = myFill.fillBlue; nCell.font = lifontSum; nRow = workSheet.getRow(sumRow); nCell = nRow.getCell('F'); nCell.value = {formula: 'SUM(F15:F' + (itnum - 1) + ')', richText: [{font: bFont11}]}; nCell.numFmt = '#,##0'; nCell.alignment = mystyle.algCenter; nRow.getCell('F').border = { top: {style: 'thin'}, left: {style: 'thin'}, bottom: {style: 'medium'}, right: {style: 'thin'} }; nCell.fill = myFill.fillBlue; nCell.font = lifontSum; nRow = workSheet.getRow(sumRow); nCell = nRow.getCell('G'); nRow.getCell('G').border = { top: {style: 'thin'}, left: {style: 'thin'}, bottom: {style: 'medium'}, right: {style: 'thin'} }; nCell.fill = myFill.fillBlue; nRow = workSheet.getRow(sumRow); nCell = nRow.getCell('H'); nCell.value = {formula: 'SUM(H15:H' + (itnum - 1) + ')', richText: [{font: bFont9}]}; nCell.numFmt = '#,##0'; nCell.alignment = mystyle.algRight; nRow.getCell('H').border = { top: {style: 'thin'}, left: {style: 'thin'}, bottom: {style: 'medium'}, right: {style: 'thin'} }; nCell.fill = myFill.fillBlue; nCell.font = lifontSum; nRow = workSheet.getRow(sumRow); nCell = nRow.getCell('I'); nRow.getCell('I').border = { top: {style: 'thin'}, left: {style: 'thin'}, bottom: {style: 'medium'}, right: {style: 'medium'} }; nCell.fill = myFill.fillBlue; nRow = workSheet.getRow(sumRow + 1); nRow.height = 24; nCell = nRow.getCell('A'); nCell.value = { richText: [{ text: 'PACKING COST', font: bFont9 }] }; nCell.alignment = mystyle.algRight; workSheet.mergeCells('A' + (sumRow + 1) + ':E' + (sumRow + 1)); nRow.getCell('A').border = {left: {style: 'medium'}, bottom: {style: 'medium'}, right: {style: 'thin'}}; nCell.fill = myFill.fillBlue; nCell.font = lifontSum; nRow = workSheet.getRow(sumRow + 1); nCell = nRow.getCell('F'); nRow.getCell('F').border = {left: {style: 'thin'}, bottom: {style: 'medium'}, right: {style: 'thin'}}; nCell.fill = myFill.fillBlue; nRow = workSheet.getRow(sumRow + 1); nCell = nRow.getCell('G'); nRow.getCell('G').border = {left: {style: 'thin'}, bottom: {style: 'medium'}, right: {style: 'thin'}}; nCell.fill = myFill.fillBlue; nRow = workSheet.getRow(sumRow + 1); nCell = nRow.getCell('H'); nCell.value = ''; nCell.numFmt = '#,##0'; nCell.alignment = mystyle.algRight; nRow.getCell('H').border = {left: {style: 'thin'}, bottom: {style: 'medium'}, right: {style: 'thin'}}; nCell.fill = myFill.fillBlue; nCell.font = bFont11; nRow = workSheet.getRow(sumRow + 1); nCell = nRow.getCell('I'); nRow.getCell('I').border = {left: {style: 'thin'}, bottom: {style: 'medium'}, right: {style: 'medium'}}; nCell.fill = myFill.fillBlue; nRow = workSheet.getRow(sumRow + 2); nRow.height = 24; nCell = nRow.getCell('A'); nCell.value = { richText: [{ text: 'SEA FREIGHT CHARGE & INSURANCE PREMIUM', font: {size: 9, name: default_font,} }] }; nCell.alignment = mystyle.algRight; workSheet.mergeCells('A' + (sumRow + 2) + ':E' + (sumRow + 2)); nRow.getCell('A').border = {left: {style: 'medium'}, bottom: {style: 'medium'}, right: {style: 'thin'}}; nCell.fill = myFill.fillBlue; nCell.font = bFont9; nRow = workSheet.getRow(sumRow + 2); nCell = nRow.getCell('F'); nRow.getCell('F').border = {left: {style: 'thin'}, bottom: {style: 'medium'}, right: {style: 'thin'}}; nCell.fill = myFill.fillBlue; nRow = workSheet.getRow(sumRow + 2); nCell = nRow.getCell('G'); nRow.getCell('G').border = {left: {style: 'thin'}, bottom: {style: 'medium'}, right: {style: 'thin'}}; nCell.fill = myFill.fillBlue; let feeAmt = 0; nRow = workSheet.getRow(sumRow + 2); nCell = nRow.getCell('H'); nCell.value = feeAmt || ''; nCell.numFmt = '#,##0'; nCell.alignment = mystyle.algRight; nRow.getCell('H').border = {left: {style: 'thin'}, bottom: {style: 'medium'}, right: {style: 'thin'}}; nCell.fill = myFill.fillBlue; nCell.font = bFont11; nRow = workSheet.getRow(sumRow + 2); nCell = nRow.getCell('I'); nRow.getCell('I').border = {left: {style: 'thin'}, bottom: {style: 'medium'}, right: {style: 'medium'}}; nCell.fill = myFill.fillBlue; nRow = workSheet.getRow(sumRow + 3); nRow.height = 24; nCell = nRow.getCell('A'); nCell.value = {richText: [{text: 'ETC', font: {size: 9, name: default_font,}}]}; nCell.alignment = mystyle.algRight; workSheet.mergeCells('A' + (sumRow + 3) + ':E' + (sumRow + 3)); nRow.getCell('A').border = {left: {style: 'medium'}, bottom: {style: 'medium'}, right: {style: 'thin'}}; nCell.fill = myFill.fillBlue; nCell.font = bFont9; nRow = workSheet.getRow(sumRow + 3); nCell = nRow.getCell('F'); nRow.getCell('F').border = {left: {style: 'thin'}, bottom: {style: 'medium'}, right: {style: 'thin'}}; nCell.fill = myFill.fillBlue; nRow = workSheet.getRow(sumRow + 3); nCell = nRow.getCell('G'); nRow.getCell('G').border = {left: {style: 'thin'}, bottom: {style: 'medium'}, right: {style: 'thin'}}; nCell.fill = myFill.fillBlue; let etcAmt = 0; nRow = workSheet.getRow(sumRow + 3); nCell = nRow.getCell('H'); nCell.value = etcAmt || ''; nCell.numFmt = '#,##0'; nCell.alignment = mystyle.algRight; nRow.getCell('H').border = {left: {style: 'thin'}, bottom: {style: 'medium'}, right: {style: 'thin'}}; nCell.fill = myFill.fillBlue; nCell.font = bFont11; nRow = workSheet.getRow(sumRow + 3); nCell = nRow.getCell('I'); nRow.getCell('I').border = {left: {style: 'thin'}, bottom: {style: 'medium'}, right: {style: 'medium'}}; nCell.fill = myFill.fillBlue; nRow = workSheet.getRow(sumRow + 4); nRow.height = 24; nCell = nRow.getCell('A'); nCell.value = {richText: [{text: totalStr2, font: {size: 9, name: default_font,}}]}; nCell.alignment = mystyle.algRight; workSheet.mergeCells('A' + (sumRow + 4) + ':E' + (sumRow + 4)); nRow.getCell('A').border = {left: {style: 'medium'}, bottom: {style: 'medium'}, right: {style: 'thin'}}; nCell.fill = myFill.fillBlue; nCell.font = bFont9; nRow = workSheet.getRow(sumRow + 4); nCell = nRow.getCell('F'); nCell.value = {formula: 'SUM(F15:F' + (itnum - 1) + ')', richText: [{font: {size: 9, name: default_font,}}]}; nCell.numFmt = '#,##0'; nCell.alignment = mystyle.algCenter; nRow.getCell('F').border = {left: {style: 'thin'}, bottom: {style: 'medium'}, right: {style: 'thin'}}; nCell.fill = myFill.fillBlue; nCell.font = bFont11; nRow = workSheet.getRow(sumRow + 4); nCell = nRow.getCell('G'); nRow.getCell('G').border = {left: {style: 'thin'}, bottom: {style: 'medium'}, right: {style: 'thin'}}; nCell.fill = myFill.fillBlue; nRow = workSheet.getRow(sumRow + 4); tSumRow = sumRow + 2; nCell = nRow.getCell('H'); nCell.value = { formula: 'SUM(H' + sumRow + ':H' + (sumRow + 3) + ')', }; nCell.numFmt = '#,##0'; nCell.alignment = mystyle.algRight; nRow.getCell('H').border = {left: {style: 'thin'}, bottom: {style: 'medium'}, right: {style: 'thin'}}; nCell.fill = myFill.fillBlue; nCell.font = bFont11; nRow = workSheet.getRow(sumRow + 4); nCell = nRow.getCell('I'); nRow.getCell('I').border = {left: {style: 'thin'}, bottom: {style: 'medium'}, right: {style: 'medium'}}; nCell.fill = myFill.fillBlue; // 푸터 부분 let footerRow = sumRow + 5; nRow = workSheet.getRow(footerRow); nCell = nRow.getCell('A'); nCell.value = { richText: [{ text: 'Supplying Condition', font: {size: 11, name: default_font, } }] }; nCell.alignment = mystyle.algLeft; workSheet.mergeCells('A' + footerRow +':B' + footerRow); nRow = workSheet.getRow(footerRow); nCell = nRow.getCell('C'); nCell.value = { richText: [{ text: ': TT', font: {size: 11, name: default_font, } }] }; nCell.alignment = mystyle.algLeft_wrf; nCell.fill = myFill.fillInput; nRow = workSheet.getRow(footerRow +1); nCell = nRow.getCell('A'); nCell.value = { richText: [{ text: 'Port of Loading', font: {size: 11, name: default_font, } }] }; nCell.alignment = mystyle.algLeft; workSheet.mergeCells('A' + (footerRow+1) +':B' + (footerRow+1)); nRow = workSheet.getRow(footerRow +1); nCell = nRow.getCell('C'); nCell.value = { richText: [{ text: ': AB', font: {size: 11, name: default_font, } }] }; nCell.alignment = mystyle.algLeft_wrf; nCell.fill = myFill.fillInput; nRow = workSheet.getRow(footerRow +2); nCell = nRow.getCell('A'); nCell.value = { richText: [{ text: 'Ship Via', font: {size: 11, name: default_font, } }] }; nCell.alignment = mystyle.algLeft; workSheet.mergeCells('A' + (footerRow+2) +':B' + (footerRow+2)); nRow = workSheet.getRow(footerRow +2); nCell = nRow.getCell('C'); nCell.value = { richText: [{ text: ': VVIA', font: {size: 11, name: default_font, } }] }; nCell.alignment = mystyle.algLeft_wrf; nCell.fill = myFill.fillInput; nRow = workSheet.getRow(footerRow +3); nRow.height = 6.75; nRow = workSheet.getRow(footerRow +4); nRow.height = 6.75; nRow = workSheet.getRow(footerRow +5); nCell = nRow.getCell('A'); nCell.value = { richText: [{ text: ' Price Terms : ', font: {size: 11, name: default_font, } }, { text: '가', font: {size: 11, name: default_font, color: {argb: '2B00FF'} } },] }; nCell.alignment = mystyle.algLeft; workSheet.mergeCells('A' + (footerRow+5) +':E' + (footerRow+5)); nCell.border = { top: {style:'thin'}, left: {style:'thin'}, bottom: {style:'thin'}, right: {style:'double'}}; nRow = workSheet.getRow(footerRow +5); nCell = nRow.getCell('F'); nCell.value = { richText: [{ text: ' Packing : ', font: {size: 11, name: default_font, } }, { text: '나' , font: {size: 11, name: default_font, color: {argb: '2B00FF'} } }] }; nCell.alignment = mystyle.algLeft; workSheet.mergeCells('F' + (footerRow+5) +':I' + (footerRow+5)); nCell.border = { top: {style:'thin'}, left: {style:'double'}, bottom: {style:'thin'}, right: {style:'thin'}}; nRow = workSheet.getRow(footerRow +6); nCell = nRow.getCell('A'); nCell.value = { richText: [{ text: ' Time of Shipment : ' , font: {size: 11, name: default_font, } }, { text: '다' , font: {size: 11, name: default_font, color: {argb: '2B00FF'} } }] }; nCell.alignment = mystyle.algLeft; workSheet.mergeCells('A' + (footerRow+6) +':E' + (footerRow+6)); nCell.border = { top: {style:'thin'}, left: {style:'thin'}, bottom: {style:'thin'}, right: {style:'double'}}; nRow = workSheet.getRow(footerRow +6); nCell = nRow.getCell('F'); nCell.value = { richText: [{ text: ' Inspection : ', font: {size: 11, name: default_font, } }, { text: '라' , font: {size: 11, name: default_font, color: {argb: '2B00FF'} } }] }; nCell.alignment = mystyle.algLeft; workSheet.mergeCells('F' + (footerRow+6) +':I' + (footerRow+6)); nCell.border = { top: {style:'thin'}, left: {style:'double'}, bottom: {style:'thin'}, right: {style:'thin'}}; nRow = workSheet.getRow(footerRow +7); nCell = nRow.getCell('A'); nCell.value = { richText: [{ text: ' Payment Terms : ' , font: {size: 11, name: default_font, } }, { text: '마' , font: {size: 11, name: default_font, color: {argb: '2B00FF'} } }] }; nCell.alignment = mystyle.algLeft; workSheet.mergeCells('A' + (footerRow+7) +':E' + (footerRow+7)); nCell.border = { top: {style:'thin'}, left: {style:'thin'}, bottom: {style:'thin'}, right: {style:'double'}}; nRow = workSheet.getRow(footerRow +7); nCell = nRow.getCell('F'); nCell.value = { richText: [{ text: ' Validity : ', font: {size: 11, name: default_font, } }, { text: '바', font: {size: 11, name: default_font, color: {argb: '2B00FF'} } }] }; nCell.alignment = mystyle.algLeft; workSheet.mergeCells('F' + (footerRow+7) +':I' + (footerRow+7)); nCell.border = { top: {style:'thin'}, left: {style:'double'}, bottom: {style:'thin'}, right: {style:'thin'}}; nRow = workSheet.getRow(footerRow +8); nCell = nRow.getCell('A'); nCell.value = { richText: [{ text: ' Country Origin : ' , font: {size: 11, name: default_font, } }, { text: '사' , font: {size: 11, name: default_font, color: {argb: '2B00FF'} }, }] }; nCell.alignment = mystyle.algLeft; workSheet.mergeCells('A' + (footerRow+8) +':E' + (footerRow+8)); nCell.border = { top: {style:'thin'}, left: {style:'thin'}, bottom: {style:'thin'}, right: {style:'double'}}; nRow = workSheet.getRow(footerRow +8); nCell = nRow.getCell('F'); workSheet.mergeCells('F' + (footerRow+8) +':I' + (footerRow+8)); nCell.border = { top: {style:'thin'}, left: {style:'double'}, bottom: {style:'thin'}, right: {style:'thin'}}; nRow = workSheet.getRow(footerRow +11); nCell = nRow.getCell('A'); nCell.value = { richText: [{ text: 'Note.' , font: {size: 11, name: default_font, } }] }; nCell.alignment = mystyle.algLeft; let estTextArr = ['A','B','C']; estTextArr.forEach((sts,idx) => { nRow = workSheet.getRow(footerRow +12 +idx); nCell = nRow.getCell('A'); nCell.value = { richText: [{ text: '우' , font: {size: 11, name: default_font, color: {argb: '2B00FF'} } }] }; nCell.alignment = mystyle.algLeft; workSheet.mergeCells('A' + (footerRow+12 +idx) +':E' + (footerRow+12 +idx)); }) nRow = workSheet.getRow(footerRow +12); nCell = nRow.getCell('F'); nCell.value = { richText: [{ text: 'The president of STEEL KOREA Co.,Ltd' , font: {size: 10, name: default_font, } }] }; nCell.alignment = mystyle.algLeft; workSheet.mergeCells('F' + (footerRow+12) +':I' + (footerRow+12)); nCell.border = { top: {style:'thin'}, bottom: {style:'medium'},}; nRow = workSheet.getRow(footerRow +17); nRow.height = 9.75; nRow = workSheet.getRow(footerRow +18); nCell = nRow.getCell('F'); nCell.value = { richText: [{ text: ' HYEON DO HEO' , font: {size: 10, name: default_font, } }] }; nCell.alignment = mystyle.algLeft; workSheet.mergeCells('F' + (footerRow+18) +':I' + (footerRow+18)); nCell.border = { top: {style:'medium'},}; return workSheet; }; document.getElementById("btnDownSample").addEventListener("click",function(){ getEstiExcel("sample.xlsx","타이틀"); });