@visactor/vtable-export 0.17.2 → 0.17.3-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/excel/index.js +27 -5
- package/cjs/excel/index.js.map +1 -1
- package/cjs/index.d.ts +4 -4
- package/cjs/index.js +7 -11
- package/cjs/index.js.map +1 -1
- package/dist/vtable-export.js +141 -75809
- package/dist/vtable-export.min.js +36 -91
- package/es/excel/index.js +26 -3
- package/es/excel/index.js.map +1 -1
- package/es/index.d.ts +4 -4
- package/es/index.js +4 -4
- package/es/index.js.map +1 -1
- package/package.json +5 -4
package/cjs/excel/index.js
CHANGED
|
@@ -51,11 +51,7 @@ function exportVTableToExcel(tableInstance) {
|
|
|
51
51
|
const rowHeight = tableInstance.getRowHeight(row);
|
|
52
52
|
worksheet.getRow(row + 1).height = rowHeight;
|
|
53
53
|
}
|
|
54
|
-
|
|
55
|
-
encode_1.encodeCellAddress)(col, row));
|
|
56
|
-
cell.value = getCellValue(cellValue, cellType), cell.font = (0, style_1.getCellFont)(cellStyle, cellType),
|
|
57
|
-
cell.fill = (0, style_1.getCellFill)(cellStyle), cell.border = (0, style_1.getCellBorder)(cellStyle),
|
|
58
|
-
cell.alignment = (0, style_1.getCellAlignment)(cellStyle);
|
|
54
|
+
addCell(col, row, tableInstance, worksheet, workbook);
|
|
59
55
|
const cellRange = tableInstance.getCellRange(col, row);
|
|
60
56
|
if (cellRange.start.col !== cellRange.end.col || cellRange.start.row !== cellRange.end.row) {
|
|
61
57
|
const key = `${cellRange.start.col},${cellRange.start.row}:${cellRange.end.col},${cellRange.end.row}}`;
|
|
@@ -80,6 +76,32 @@ function exportVTableToExcel(tableInstance) {
|
|
|
80
76
|
}));
|
|
81
77
|
}
|
|
82
78
|
|
|
79
|
+
function addCell(col, row, tableInstance, worksheet, workbook) {
|
|
80
|
+
const cellType = tableInstance.getCellType(col, row), cellValue = tableInstance.getCellValue(col, row), cellStyle = tableInstance.getCellStyle(col, row);
|
|
81
|
+
if ("text" === cellType || "link" === cellType) {
|
|
82
|
+
const cell = worksheet.getCell((0, encode_1.encodeCellAddress)(col, row));
|
|
83
|
+
cell.value = getCellValue(cellValue, cellType), cell.font = (0, style_1.getCellFont)(cellStyle, cellType),
|
|
84
|
+
cell.fill = (0, style_1.getCellFill)(cellStyle), cell.border = (0, style_1.getCellBorder)(cellStyle),
|
|
85
|
+
cell.alignment = (0, style_1.getCellAlignment)(cellStyle);
|
|
86
|
+
} else if ("image" === cellType) {
|
|
87
|
+
const cellImageBase64 = tableInstance.exportCellImg(col, row), imageId = workbook.addImage({
|
|
88
|
+
base64: cellImageBase64,
|
|
89
|
+
extension: "png"
|
|
90
|
+
});
|
|
91
|
+
worksheet.addImage(imageId, {
|
|
92
|
+
tl: {
|
|
93
|
+
col: col + .5,
|
|
94
|
+
row: row + .5
|
|
95
|
+
},
|
|
96
|
+
br: {
|
|
97
|
+
col: col + 1,
|
|
98
|
+
row: row + 1
|
|
99
|
+
},
|
|
100
|
+
editAs: "oneCell"
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
83
105
|
function getCellValue(cellValue, cellType) {
|
|
84
106
|
return "link" === cellType ? {
|
|
85
107
|
text: cellValue,
|
package/cjs/excel/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["excel/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sDAA8B;AAC9B,2CAAmD;AAEnD,mCAAoF;AAEpF,SAAsB,mBAAmB,CAAC,aAAsB;;QAC9D,MAAM,QAAQ,GAAG,IAAI,iBAAO,CAAC,QAAQ,EAAE,CAAC;QACxC,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAClD,SAAS,CAAC,UAAU,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAE3C,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,CAAC,CAAC;QACjB,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,GAAG,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,CAAC,CAAC;QACjB,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,GAAG,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,MAAM,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;QAE/B,KAAK,IAAI,GAAG,GAAG,MAAM,EAAE,GAAG,IAAI,MAAM,EAAE,GAAG,EAAE,EAAE;YAC3C,MAAM,OAAO,GAAG,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,EAAE,CAAC;YACtC,KAAK,IAAI,GAAG,GAAG,MAAM,EAAE,GAAG,IAAI,MAAM,EAAE,GAAG,EAAE,EAAE;gBAC3C,IAAI,GAAG,KAAK,MAAM,EAAE;oBAClB,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;oBAClD,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBAE/C,YAAY,CAAC,MAAM,GAAG,SAAS,CAAC;iBACjC;gBAED,
|
|
1
|
+
{"version":3,"sources":["excel/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import ExcelJS from 'exceljs';\nimport { encodeCellAddress } from '../util/encode';\nimport type { CellType, IVTable } from '../util/type';\nimport { getCellAlignment, getCellBorder, getCellFill, getCellFont } from './style';\n\nexport async function exportVTableToExcel(tableInstance: IVTable) {\n const workbook = new ExcelJS.Workbook();\n const worksheet = workbook.addWorksheet('sheet1');\n worksheet.properties.defaultRowHeight = 40;\n\n const columns = [];\n const minRow = 0;\n const maxRow = tableInstance.rowCount - 1;\n const minCol = 0;\n const maxCol = tableInstance.colCount - 1;\n const mergeCells = [];\n const mergeCellSet = new Set();\n\n for (let col = minCol; col <= maxCol; col++) {\n const colWith = tableInstance.getColWidth(col);\n columns[col] = { width: colWith / 6 };\n for (let row = minRow; row <= maxRow; row++) {\n if (col === minCol) {\n const rowHeight = tableInstance.getRowHeight(row);\n const worksheetRow = worksheet.getRow(row + 1);\n // worksheetRow.height = rowHeight * 0.75;\n worksheetRow.height = rowHeight;\n }\n\n addCell(col, row, tableInstance, worksheet, workbook);\n\n const cellRange = tableInstance.getCellRange(col, row);\n if (cellRange.start.col !== cellRange.end.col || cellRange.start.row !== cellRange.end.row) {\n const key = `${cellRange.start.col},${cellRange.start.row}:${cellRange.end.col},${cellRange.end.row}}`;\n if (!mergeCellSet.has(key)) {\n mergeCellSet.add(key);\n mergeCells.push(cellRange);\n }\n }\n }\n }\n\n worksheet.columns = columns;\n mergeCells.forEach(mergeCell => {\n worksheet.mergeCells(\n mergeCell.start.row + 1,\n mergeCell.start.col + 1,\n mergeCell.end.row + 1,\n mergeCell.end.col + 1\n );\n });\n\n // frozen\n const frozenView: ExcelJS.WorksheetViewFrozen[] = [];\n // top frozen\n if (tableInstance.frozenRowCount > 0) {\n frozenView.push({\n state: 'frozen',\n ySplit: tableInstance.frozenRowCount,\n // activeCell: 'A1',\n topLeftCell: encodeCellAddress(0, tableInstance.frozenRowCount)\n });\n }\n // left frozen\n if (tableInstance.frozenColCount > 0) {\n frozenView.push({\n state: 'frozen',\n xSplit: tableInstance.frozenColCount,\n // activeCell: 'A1',\n topLeftCell: encodeCellAddress(tableInstance.frozenColCount, 0)\n });\n }\n // not support bottom&right frozen\n worksheet.views = frozenView;\n\n const buffer = await workbook.xlsx.writeBuffer();\n return buffer;\n}\n\nfunction addCell(\n col: number,\n row: number,\n tableInstance: IVTable,\n worksheet: ExcelJS.Worksheet,\n workbook: ExcelJS.Workbook\n) {\n const cellType = tableInstance.getCellType(col, row);\n const cellValue = tableInstance.getCellValue(col, row);\n const cellStyle = tableInstance.getCellStyle(col, row);\n\n if (cellType === 'text' || cellType === 'link') {\n const cell = worksheet.getCell(encodeCellAddress(col, row));\n cell.value = getCellValue(cellValue, cellType);\n cell.font = getCellFont(cellStyle, cellType);\n cell.fill = getCellFill(cellStyle);\n cell.border = getCellBorder(cellStyle);\n cell.alignment = getCellAlignment(cellStyle);\n } else if (cellType === 'image') {\n const cellImageBase64 = tableInstance.exportCellImg(col, row);\n const imageId = workbook.addImage({\n base64: cellImageBase64,\n extension: 'png'\n });\n worksheet.addImage(imageId, {\n tl: { col: col + 0.5, row: row + 0.5 },\n br: { col: col + 1, row: row + 1 },\n editAs: 'oneCell'\n // ext: { width: tableInstance.getColWidth(col), height: tableInstance.getRowHeight(row) }\n });\n console.log(col, row, col + 1 / tableInstance.getColWidth(col), row + 1 / tableInstance.getRowHeight(row));\n }\n}\n\nfunction getCellValue(cellValue: string, cellType: CellType) {\n if (cellType === 'link') {\n return {\n text: cellValue,\n hyperlink: cellValue,\n tooltip: cellValue\n };\n }\n return cellValue;\n}\n"]}
|
package/cjs/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export { downloadExcel }
|
|
1
|
+
import { exportVTableToCsv } from './csv';
|
|
2
|
+
import { downloadCsv, downloadExcel } from './util/download';
|
|
3
|
+
import { exportVTableToExcel } from './excel';
|
|
4
|
+
export { exportVTableToCsv, downloadCsv, exportVTableToExcel, downloadExcel };
|
package/cjs/index.js
CHANGED
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
}), exports.downloadExcel = exports.exportVTableToExcel = exports.downloadCsv = exports.exportVTableToCsv = void 0;
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
const csv_1 = require("./csv");
|
|
8
8
|
|
|
9
9
|
Object.defineProperty(exports, "exportVTableToCsv", {
|
|
10
10
|
enumerable: !0,
|
|
@@ -13,29 +13,25 @@ Object.defineProperty(exports, "exportVTableToCsv", {
|
|
|
13
13
|
}
|
|
14
14
|
});
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
const download_1 = require("./util/download");
|
|
17
17
|
|
|
18
18
|
Object.defineProperty(exports, "downloadCsv", {
|
|
19
19
|
enumerable: !0,
|
|
20
20
|
get: function() {
|
|
21
21
|
return download_1.downloadCsv;
|
|
22
22
|
}
|
|
23
|
-
})
|
|
24
|
-
|
|
25
|
-
var excel_1 = require("./excel");
|
|
26
|
-
|
|
27
|
-
Object.defineProperty(exports, "exportVTableToExcel", {
|
|
23
|
+
}), Object.defineProperty(exports, "downloadExcel", {
|
|
28
24
|
enumerable: !0,
|
|
29
25
|
get: function() {
|
|
30
|
-
return
|
|
26
|
+
return download_1.downloadExcel;
|
|
31
27
|
}
|
|
32
28
|
});
|
|
33
29
|
|
|
34
|
-
|
|
30
|
+
const excel_1 = require("./excel");
|
|
35
31
|
|
|
36
|
-
Object.defineProperty(exports, "
|
|
32
|
+
Object.defineProperty(exports, "exportVTableToExcel", {
|
|
37
33
|
enumerable: !0,
|
|
38
34
|
get: function() {
|
|
39
|
-
return
|
|
35
|
+
return excel_1.exportVTableToExcel;
|
|
40
36
|
}
|
|
41
37
|
});
|
package/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.ts"],"names":[],"mappings":";;;AAAA
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":[],"mappings":";;;AAAA,+BAA0C;AAIjC,kGAJA,uBAAiB,OAIA;AAH1B,8CAA6D;AAGjC,4FAHnB,sBAAW,OAGmB;AAAuB,8FAHxC,wBAAa,OAGwC;AAF3E,mCAA8C;AAEL,oGAFhC,2BAAmB,OAEgC","file":"index.js","sourcesContent":["import { exportVTableToCsv } from './csv';\nimport { downloadCsv, downloadExcel } from './util/download';\nimport { exportVTableToExcel } from './excel';\n\nexport { exportVTableToCsv, downloadCsv, exportVTableToExcel, downloadExcel };\n"]}
|