소개

SpreadJS에서 각 셀의 형식을 사용자 정의하여 원하는 대로 데이터를 표시할 수 있습니다. 이는 데이터베이스에서 가져온 원시 데이터가 있고 해당 데이터의 사용자에게 친숙한 형식을 표시하고자 할 때 유용할 수 있습니다.

셀의 포맷터를 설정하려면 setFormatter 메서드를 사용하여 셀에 포맷터 문자열을 설정하고 getFormatter 메서드를 사용하여 셀 포맷터를 가져옵니다. 포맷터 메서드를 사용하여 셀의 포맷터를 가져오고 설정하여 셀, 열 또는 행을 가져올 수도 있습니다. 예: 셀의 일반 형식을 설정할 수 있습니다. GeneralFormatter를 만들어 셀에 설정하십시오. 예: 또한 색 서식은 색 1에서 56까지의 인덱스를 지원합니다. 예는 다음과 같습니다.
<template> <div class="sample-tutorial"> <gc-spread-sheets class="sample-spreadsheets" @workbookInitialized="initSpread"> <gc-worksheet :autoGenerateColumns='autoGenerateColumns'> <gc-column :dataField="'*'" :width=10></gc-column> <gc-column :dataField="'Value'" :width=300></gc-column> <gc-column :dataField="'Formatter'" :width=300></gc-column> <gc-column :dataField="'Display'" :width=300></gc-column> </gc-worksheet> <gc-worksheet :autoGenerateColumns='autoGenerateColumns'> <gc-column :dataField="'*'" :width=10></gc-column> <gc-column :dataField="'Value'" :width=300></gc-column> <gc-column :dataField="'Formatter'" :width=300></gc-column> <gc-column :dataField="'Display'" :width=300></gc-column> </gc-worksheet> <gc-worksheet :autoGenerateColumns='autoGenerateColumns'> <gc-column :dataField="'*'" :width=10></gc-column> <gc-column :dataField="'Value'" :width=300></gc-column> <gc-column :dataField="'Formatter'" :width=300></gc-column> <gc-column :dataField="'Display'" :width=300></gc-column> </gc-worksheet> <gc-worksheet :autoGenerateColumns='autoGenerateColumns'> <gc-column :dataField="'*'" :width=10></gc-column> <gc-column :dataField="'Value'" :width=300></gc-column> <gc-column :dataField="'Formatter'" :width=300></gc-column> <gc-column :dataField="'Display'" :width=300></gc-column> </gc-worksheet> <gc-worksheet :autoGenerateColumns='autoGenerateColumns'> <gc-column :dataField="'*'" :width=10></gc-column> <gc-column :dataField="'Value'" :width=300></gc-column> <gc-column :dataField="'Formatter'" :width=300></gc-column> <gc-column :dataField="'Display'" :width=300></gc-column> </gc-worksheet> </gc-spread-sheets> <div class="options-container"> Select a cell in Spread, enter a format in this text box, and click the "SetFormat" button to set the format for that cell. The "ClearFormat" button can be used to clear the format in the selected cell in Spread. <div class="option-row"> <input type="text" id="format_text" value="##,##0" /> <input type="button" value="SetFormat" id="btnSetFormat" @click="btnSetFormat($event)" /> <input type="button" value="ClearFormat" id="btnClearFormat" @click="btnClearFormat($event)" /> </div> </div> </div> </template> <script setup> import '@mescius/spread-sheets-vue' import "@mescius/spread-sheets-io"; import { ref } from "vue"; import GC from '@mescius/spread-sheets'; import '@mescius/spread-sheets-resources-ko'; GC.Spread.Common.CultureManager.culture("ko-kr"); const spreadRef = ref(null); const autoGenerateColumns = ref(false); function initSpread(spread) { spreadRef.value = spread; spread.suspendPaint(); let numValue = "1234.0123456789012345678901234567899"; let dateValue = "2011/9/2"; let eraDateValue = "2019/11/1"; let timeValue = "10:08:25"; let perValue = "1234.0123456789012345678901234567899%"; let sciValue = "1.012345678901234567890123456789e2"; let cusValue = "1001.1"; let cusDateValue = "2011/08/29"; let dateFormatterArray = [ //Date Formatter dateValue, "[$-411]dddd-mmmm;@", "", dateValue, "[$-411]dddd-mmmm-yyyy;@", "", dateValue, "[$-411]mmm-yy;@", "", dateValue, "[$-411]mmmm d, yyyy;@", "", dateValue, "[$-411]m/d/yy h:mm AM/PM;@:", "", dateValue, "dddd-mmmm;@", "", dateValue, "dddd-mmmm-yyyy;@", "", dateValue, "mmm-yy;@", "", dateValue, "mmmm d, yyyy;@", "", dateValue, "m/d/yy h:mm AM/PM;@:", "", dateValue, "M/d/yyyy", "9/2/2011", dateValue, "[$-411]ggg ee/MMM/dd dddd", "", dateValue, "[$-F800]dddd, mmmm dd, yyyy", "Friday, September 02, 2011", dateValue, "M/d", "9/2", dateValue, "M/d/yy", "9/2/11", dateValue, "MM/dd/yy", "09/02/11", dateValue, "d-MMM", "2-Sep", dateValue, "d-MMM-yy", "2-Sep-11", dateValue, "dd-MMM-yy", "02-Sep-11", dateValue, "MMM-yy", "Sep-11", dateValue, "MMMM-yy", "September-11", dateValue, "d-MMM-yyyy", "2-Sep-2011", dateValue, "MMMM d, yyyy", "September 2, 2011", dateValue, "M/d/yy HH:mm tt", "9/2/11 12:00 AM", dateValue, "M/d/yy H:mm", "9/2/11 0:00", dateValue, "[$-409]mmmmm;@", "S", dateValue, "[$-409]mmmmm-yy;@", "S-11", //Time Formatter timeValue, "HH:mm:ss tt", "10:08:25 AM", timeValue, "HH:mm", "10:08", timeValue, "HH:mm tt", "10:08 AM", timeValue, "HH:mm:ss", "10:08:25", timeValue, "mm:ss.0", "08:25.0", timeValue, "m/d/yy HH:mm tt", "12/30/99 10:08 AM", timeValue, "d/m/yy HH:mm", "30/12/99 10:08", //Custom DateTime Formatter cusDateValue, "General", "40784", cusDateValue, "m/d/yyyy", "8/29/2011", cusDateValue, "d-mmm-yy", "29-Aug-11", cusDateValue, "d-mmm", "29-Aug", cusDateValue, "mmm-yy", "Aug-11", cusDateValue, "h:mm AM/PM", "0:00 AM", cusDateValue, "h:mm:ss AM/PM", "0:00:00 AM", cusDateValue, "h:mm", "0:00", cusDateValue, "h:mm:ss", "0:00:00", cusDateValue, "m/d/yyyy h:mm", "8/29/2011 0:00", cusDateValue, "mm:ss", "00:00", cusDateValue, "mm:ss.0", "00:00.0", cusDateValue, "@", "8/29/2011 12:00:00 AM", cusDateValue, "[h]:mm:ss", "978816:00:00" ]; let numberFormatterArray = [ //Number Formatter, "0.25", "# ?/?", "1/4", "1.35", "# ??/??", "1 7/20", "1.053", "# ???/???", "1 6/113", "0.33", "# ?/2", "1/2", "0.25", "# ?/4", "1/4", "1.35", "# ?/8", "1 3/8", "1.5", "# ??/16", " 1 8/16", "0.33", "# ?/10", "3/10", "0.25", "# ??/100", "25/100", "12345", "[DBNum1][$-411]#,##0", "一二,三四五", "12345", "[DBNum2][$-411]#,##0", "壱弐,参四伍", "12345", "[DBNum3][$-411]#,##0", "12,345", "12345", "[DBNum1][$-411]General", "一万二千三百四十五", "12345", "[DBNum2][$-411]General", "壱萬弐阡参百四拾伍", "12345", "[DBNum3][$-411]General", "12345", numValue, "0", "1234", numValue, "0.0", "1234.0", numValue, "0.00", "1234.01", numValue, "0.0000000000", "1234.0123456789", numValue, "0.00000000000000000000", "1234.01234567890000000000", numValue, "0.000000000000000000000000000000", "1234.012345678900000000000000000000", numValue, "#,##0", "1,234", numValue, "#,##0.00", "1,234.01", numValue, "#,##0.0000000000", "1,234.0123456789", numValue, "#,##0.00000000000000000000", "1,234.01234567890000000000", numValue, "#,##0.000000000000000000000000000000", "1,234.012345678900000000000000000000", numValue, "$#,##0", "$1,234", numValue, "$#,##0.00", "$1,234.01", numValue, "$#,##0.0000000000", "$1,234.0123456789", numValue, "$#,##0.00000000000000000000", "$1,234.01234567890000000000", numValue, "$#,##0.000000000000000000000000000000", "$1,234.012345678900000000000000000000", numValue, "#,##0.00", "1,234.01", numValue, "¥#,##0.00", "¥1,234.01", numValue, "Lek#,##0.00", "Lek1,234.01", numValue, "դր#,##0.00000", "դր1,234.01235", numValue, "$#,##0.00", "$1,234.01", numValue, "€#,##0.00", "€1,234.01", numValue, "$#,##0.00", "$1,234.01", numValue, "ман#,##0.00", "ман1,234.01", numValue, "€#,##0.00", "€1,234.01", numValue, "лв#,##0.000000", "лв1,234.012346", numValue, "$#,##0.00", "$1,234.01", numValue, "$b#,##0.00", "$b1,234.01", numValue, "R$#,##0.00", "R$1,234.01", numValue, "#,##0.00р.", "1,234.01р.", numValue, "BZ$#,##0.00", "BZ$1,234.01", numValue, "$#,##0.00", "$1,234.01", numValue, "CB#,##0.00", "CB1,234.01", numValue, "fr#,##0.00", "fr1,234.01", numValue, "$#,##0.00", "$1,234.01", numValue, "¥#,##0.00", "¥1,234.01", numValue, "$#,##0.00", "$1,234.01", numValue, "₡#,##0.00", "₡1,234.01", numValue, "Kč#,##0.00", "Kč1,234.01", numValue, "€#,##0.00", "€1,234.01", numValue, "kr#,##0.00", "kr1,234.01", numValue, "$#,##0.00", "$1,234.01", numValue, "kr#,##0.00", "kr1,234.01", numValue, "€#,##0.00", "€1,234.01", numValue, "£#,##0.00", "£1,234.01", numValue, "Lari#,##0.00", "Lari1,234.01", numValue, "Q#,##0.00", "Q1,234.01", numValue, "L#,##0.00", "L1,234.01", numValue, "kn#,##0.00", "kn1,234.01", numValue, "Ft#,##0.00", "Ft1,234.01", numValue, "Rp#,##0.00", "Rp1,234.01", numValue, "₪#,##0.00", "₪1,234.01", numValue, "रु#,##0.00", "रु1,234.01", numValue, "J$#,##0.00", "J$1,234.01", numValue, "¥#,##0.00", "¥1,234.01", numValue, "сом#,##0.00", "сом1,234.01", numValue, "₩#,##0.00", "₩1,234.01", numValue, "Т#,##0.00", "Т1,234.01", numValue, "Lt#,##0.00", "Lt1,234.01", numValue, "ден#,##0.00", "ден1,234.01", numValue, "₮#,##0.00", "₮1,234.01", numValue, "$#,##0.00", "$1,234.01", numValue, "C$#,##0.00", "C$1,234.01", numValue, "kr#,##0.00", "kr1,234.01", numValue, "zł#,##0.00", "zł1,234.01", numValue, "lei#,##0.00", "lei1,234.01", numValue, "р#,##0.00", "р1,234.01", numValue, "TA#,##0.00", "TA1,234.01", numValue, "฿#,##0.00", "฿1,234.01", numValue, "TL#,##0.00", "TL1,234.01", numValue, "TT$#,##0.00", "TT$1,234.01", numValue, "NT$#,##0.00", "NT$1,234.01", numValue, "₴#,##0.00", "₴1,234.01", numValue, "$U#,##0.00", "$U1,234.01", numValue, "сўм#,##0.00", "сўм1,234.01", numValue, "₫#,##0.00", "₫1,234.01", numValue, "R#,##0.00", "R1,234.01", numValue, "Z$#,##0.00", "Z$1,234.01", //Percentage Formatter perValue, "0%", "1234%", perValue, "0.00%", "1234.01%", perValue, "0.000000000000000%", "1234.012345678900000%", perValue, "0.000000000000000000000000000000%", "1234.012345678900000000000000000000%", //Scientific Formatter sciValue, "0E+00", "1E+02", sciValue, "0.00E+00", "1.01E+02", sciValue, "0.000000000000000E+00", "1.012345678901230E+02", sciValue, "0.000000000000000000000000000000E+00", "1.012345678901230000000000000000E+02", //Custom Number Formatter cusValue, "General", "1001.1", cusValue, "0", "1001", cusValue, "0.00", "1001.10", cusValue, "#,##0", "1,001", cusValue, "#,##0.00", "1,001.10", cusValue, "0%", "100110%", cusValue, "0.00%", "100110.00%", cusValue, "0.00E+00", "1.00E+03", cusValue, "##0.0E+0", "1.0E+3", cusValue, "# ?/?", "1001 1/9", cusValue, "# ??/??", "1001 1/10" ]; let eraFormatterArray = [ eraDateValue, '[$-ja-JP-x-gannen]ggg ee"年"mm"月"dd"日"', '', eraDateValue, '[$-ja-JP-x-gannen]ggg ee"年"m"月"d"日"', '', eraDateValue, '[$-411]ggg ee"年"mm"月"dd"日"', '', ]; let dbNum4FormatterArray = [ '1234567890000', '[DBNum4][$-412]General', '', '123456.789', '[DBNum4][$-412]0.00', '', '2020/07/16', '[DBNum4][$-412]YYYY-MM-DD', '' ]; let colorFormatterArray = [ "1", "[color 1]0.0", "", "2", "[color 2]0.0", "", "3", "[color 3]0.0", "", "4", "[color 4]0.0", "", "5", "[color 5]0.0", "", "6", "[color 6]0.0", "", "7", "[color 7]0.0", "", "8", "[color 8]0.0", "", "9", "[color 9]0.0", "", "10", "[color 10]0.0", "", "11", "[color 11]0.0", "", "12", "[color 12]0.0", "", "13", "[color 13]0.0", "", "14", "[color 14]0.0", "", "15", "[color 15]0.0", "", "16", "[color 16]0.0", "", "17", "[color 17]0.0", "", "18", "[color 18]0.0", "", "19", "[color 19]0.0", "", "20", "[color 20]0.0", "", "21", "[color 21]0.0", "", "22", "[color 22]0.0", "", "23", "[color 23]0.0", "", "24", "[color 24]0.0", "", "25", "[color 25]0.0", "", "26", "[color 26]0.0", "", "27", "[color 27]0.0", "", "28", "[color 28]0.0", "", "29", "[color 29]0.0", "", "30", "[color 30]0.0", "", "31", "[color 31]0.0", "", "32", "[color 32]0.0", "", "33", "[color 33]0.0", "", "34", "[color 34]0.0", "", "35", "[color 35]0.0", "", "36", "[color 36]0.0", "", "37", "[color 37]0.0", "", "38", "[color 38]0.0", "", "39", "[color 39]0.0", "", "40", "[color 40]0.0", "", "41", "[color 41]0.0", "", "42", "[color 42]0.0", "", "43", "[color 43]0.0", "", "44", "[color 44]0.0", "", "45", "[color 45]0.0", "", "46", "[color 46]0.0", "", "47", "[color 47]0.0", "", "48", "[color 48]0.0", "", "49", "[color 49]0.0", "", "50", "[color 50]0.0", "", "51", "[color 51]0.0", "", "52", "[color 52]0.0", "", "53", "[color 53]0.0", "", "54", "[color 54]0.0", "", "55", "[color 55]0.0", "", "56", "[color 56]0.0", "", ] spread.options.tabStripRatio = 0.8; let sheet; sheet = spread.getSheet(4); sheet.name("Color Formatter"); initFormatterUnitTest(sheet); startFormatterUnitTest(sheet, colorFormatterArray); sheet = spread.getSheet(3); sheet.name("DBNum4 Formatter"); initFormatterUnitTest(sheet); startFormatterUnitTest(sheet, dbNum4FormatterArray); sheet = spread.getSheet(2); sheet.name("Era Formatter"); initFormatterUnitTest(sheet); startFormatterUnitTest(sheet, eraFormatterArray); sheet = spread.getSheet(1); sheet.name("Date Formatter"); initFormatterUnitTest(sheet); startFormatterUnitTest(sheet, dateFormatterArray); sheet = spread.getSheet(0); sheet.name("Number Formatter"); initFormatterUnitTest(sheet); startFormatterUnitTest(sheet, numberFormatterArray); spread.resumePaint(); } function btnSetFormat(e) { let sheet = spreadRef.value.getActiveSheet(); try { let selections = sheet.getSelections(); for (let i = 0; i < selections.length; i++) { let range = getActualCellRange(selections[i], sheet.getRowCount(), sheet.getColumnCount()); for (let i = 0; i < range.rowCount; i++) { for (let j = 0; j < range.colCount; j++) { sheet.getCell(range.row + i, range.col + j).formatter(new GC.Spread.Formatter.GeneralFormatter(document.getElementById("format_text").value)); } } } } catch (ex) { alert(ex.message); } } function btnClearFormat(e) { let sheet = spreadRef.value.getActiveSheet(); let selections = sheet.getSelections(); for (let i = 0; i < selections.length; i++) { let range = getActualCellRange(selections[i], sheet.getRowCount(), sheet.getColumnCount()); for (let i = 0; i < range.rowCount; i++) { for (let j = 0; j < range.colCount; j++) { sheet.getCell(range.row + i, range.col + j).formatter(null); } } } } function initFormatterUnitTest(sheet) { let spreadNS = GC.Spread.Sheets; sheet.setColumnCount(4); sheet.getCell(0, 0, spreadNS.SheetArea.colHeader).value(" "); sheet.getCell(0, 1, spreadNS.SheetArea.colHeader).value("Value"); sheet.getCell(0, 2, spreadNS.SheetArea.colHeader).value("Formatter"); sheet.getCell(0, 3, spreadNS.SheetArea.colHeader).value("Display"); sheet.setColumnWidth(0, 10); sheet.setColumnWidth(1, 300); sheet.setColumnWidth(2, 300); sheet.setColumnWidth(3, 300); } function startFormatterUnitTest(sheet, formatters) { for (let i = 0; i < formatters.length; i += 3) { //Mark the new added format in current version. if (sheet.name() === "Number Formatter") { if (i < 15 * 3) { sheet.getCell(i / 3, 0).value("*").font("20px arial bold"); } } if (sheet.name() === "Date Formatter") { if (i < 13 * 3) { sheet.getCell(i / 3, 0).value("*").font("20px arial bold"); } } sheet.setValue(i / 3, 1, formatters[i]); sheet.setValue(i / 3, 2, formatters[i + 1]); sheet.getCell(i / 3, 3).formatter(formatters[i + 1]); sheet.setText(i / 3, 3, formatters[i]); } } function getActualCellRange(cellRange, rowCount, columnCount) { let spreadNS = GC.Spread.Sheets; if (cellRange.row == -1 && cellRange.col == -1) { return new spreadNS.Range(0, 0, rowCount, columnCount); } else if (cellRange.row == -1) { return new spreadNS.Range(0, cellRange.col, rowCount, cellRange.colCount); } else if (cellRange.col == -1) { return new spreadNS.Range(cellRange.row, 0, cellRange.rowCount, columnCount); } return cellRange; } </script> <style scoped> .sample-tutorial { position: relative; height: 100%; overflow: hidden; } .sample-spreadsheets { width: calc(100% - 280px); height: 100%; overflow: hidden; float: left; } .options-container { float: right; width: 280px; padding: 12px; height: 100%; box-sizing: border-box; background: #fbfbfb; overflow: auto; } .option-row { font-size: 14px; padding: 5px; margin-top: 10px; } input { padding: 4px 8px; display: block; margin-top: 6px; } input[type=button] { display: inline-block; } body { position: absolute; top: 0; bottom: 0; left: 0; right: 0; } </style>
<!DOCTYPE html> <html style="height:100%;font-size:14px;"> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <title>SpreadJS VUE</title> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <link rel="stylesheet" type="text/css" href="$DEMOROOT$/ko/vue3/node_modules/@mescius/spread-sheets/styles/gc.spread.sheets.excel2013white.css"> <script src="$DEMOROOT$/ko/vue3/node_modules/systemjs/dist/system.src.js"></script> <script src="./systemjs.config.js"></script> <script src="./compiler.js" type="module"></script> <script> var System = SystemJS; System.import("./src/app.js"); System.import('$DEMOROOT$/ko/lib/vue3/license.js'); </script> </head> <body> <div id="app" style="height: 100%;"></div> </body> </html>
var jsonData = { "name": "Sheet1", "isSelected": true, "activeRow": 10, "activeCol": 5, "visible": 1, "theme": "Office", "data": { "dataTable": { "1": { "0": { "value": "Font", "style": { "backColor": "#82bc00", "foreColor": "white" } }, "1": { "value": "FontFamily", "style": { "backColor": "#82bc00", "foreColor": "white" } }, "2": { "value": "FontSize", "style": { "backColor": "#82bc00", "foreColor": "white" } }, "3": { "value": "Bold", "style": { "backColor": "#82bc00", "foreColor": "white" } }, "4": { "value": "Italic", "style": { "backColor": "#82bc00", "foreColor": "white" } }, "5": { "value": "TextDecoration", "style": { "backColor": "#82bc00", "foreColor": "white" } }, "6": { "value": "Align", "style": { "backColor": "#82bc00", "foreColor": "white" } }, "7": { "value": "ForeColor", "style": { "backColor": "#82bc00", "foreColor": "white" } }, "8": { "value": "BackgroundColor", "style": { "backColor": "#82bc00", "foreColor": "white" } }, "9": { "value": "WordWrap", "style": { "backColor": "#82bc00", "foreColor": "white" } }, "10": { "value": "Indent", "style": { "backColor": "#82bc00", "foreColor": "white" } }, "11": { "value": "ShrinkToFit", "style": { "backColor": "#82bc00", "foreColor": "white" } } }, "2": { "0": { "value": "Font" }, "1": { "value": "FontFamily" }, "2": { "value": "FontSize" }, "3": { "value": "Bold" }, "4": { "value": "Italic" }, "5": { "value": "UnderLine" }, "6": { "value": "Align" }, "7": { "value": "Forecolor" }, "8": { "value": "BackColor" }, "9": { "value": "Word-Wrap Word-Wrap Word-Wrap" }, "10": { "value": "Indent" }, "11": { "value": "This is a long text" } }, "3": { "9": { "value": "Word\r\nWrap" } }, "4": { "0": { "value": "Font" }, "1": { "value": "FontFamily" }, "2": { "value": "FontSize" }, "3": { "value": "Bold" }, "4": { "value": "Italic" }, "5": { "value": "DbUnderLine" }, "6": { "value": "Align" }, "7": { "value": "Forecolor" }, "8": { "value": "BackColor" }, "10": { "value": "Indent" }, "11": { "value": "ShrinkToFit" } }, "6": { "0": { "value": "Font" }, "1": { "value": "FontFamily" }, "2": { "value": "FontSize" }, "5": { "value": "lineThrough" }, "6": { "value": "Align" }, "7": { "value": "Forecolor" }, "8": { "value": "BackColor" }, "10": { "value": "Indent" } }, "8": { "5": { "value": "overline" } } }, "defaultDataNode": { "style": { "themeFont": "Body" } } }, "rowHeaderData": { "defaultDataNode": { "style": { "themeFont": "Body" } } }, "colHeaderData": { "defaultDataNode": { "style": { "themeFont": "Body" } } }, "rows": [ null, null, { "size": 50 }, { "size": 50 }, { "size": 50 }, null, { "size": 50 } ], "columns": [ { "size": 120 }, { "size": 120 }, { "size": 120 }, null, null, { "size": 100 }, { "size": 100 }, null, { "size": 120 }, { "size": 80 }, { "size": 80 }, { "size": 100 } ], "defaultData": {}, "leftCellIndex": 0, "topCellIndex": 0, "selections": { "0": { "row": 10, "col": 5, "rowCount": 1, "colCount": 1 }, "length": 1 }, "rowOutlines": { "items": [] }, "columnOutlines": { "items": [] }, "cellStates": {}, "states": {}, "outlineColumnOptions": {}, "autoMergeRangeInfos": [], "shapeCollectionOption": { "snapMode": 0 }, "printInfo": { "paperSize": { "width": 850, "height": 1100, "kind": 1 } } }
(function (global) { SystemJS.config({ transpiler: 'plugin-babel', babelOptions: { es2015: true }, paths: { // paths serve as alias 'npm:': 'node_modules/' }, packageConfigPaths: [ './node_modules/*/package.json', "./node_modules/@mescius/*/package.json", "./node_modules/@babel/*/package.json", "./node_modules/@vue/*/package.json" ], map: { '@mescius/spread-sheets': 'npm:@mescius/spread-sheets/index.js', '@mescius/spread-sheets-resources-ko': 'npm:@mescius/spread-sheets-resources-ko/index.js', '@mescius/spread-sheets-io': 'npm:@mescius/spread-sheets-io/index.js', '@mescius/spread-sheets-vue': 'npm:@mescius/spread-sheets-vue/index.js', 'vue': "npm:vue/dist/vue.esm-browser.js", 'tiny-emitter': 'npm:tiny-emitter/index.js', 'plugin-babel': 'npm:systemjs-plugin-babel/plugin-babel.js', "systemjs-babel-build": "npm:systemjs-plugin-babel/systemjs-babel-browser.js", }, meta: { '*.css': { loader: 'systemjs-plugin-css' }, '*.vue': { loader: "../plugin-vue/index.js" } } }); })(this);