@visactor/vtable-export 1.16.0-alpha.0 → 1.16.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/README.md +17 -18
- package/cjs/util/download.d.ts +2 -2
- package/cjs/util/download.js +38 -8
- package/cjs/util/download.js.map +1 -1
- package/dist/vtable-export.js +4 -4
- package/dist/vtable-export.min.js +1 -1
- package/es/util/download.d.ts +2 -2
- package/es/util/download.js +38 -8
- package/es/util/download.js.map +1 -1
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -41,33 +41,32 @@ import { downloadCsv, exportVTableToCsv, downloadExcel, exportVTableToExcel } fr
|
|
|
41
41
|
const option = {
|
|
42
42
|
header: [
|
|
43
43
|
{
|
|
44
|
-
field:
|
|
45
|
-
caption:
|
|
44
|
+
field: '0',
|
|
45
|
+
caption: 'name'
|
|
46
46
|
},
|
|
47
47
|
{
|
|
48
|
-
field:
|
|
49
|
-
caption:
|
|
48
|
+
field: '1',
|
|
49
|
+
caption: 'age'
|
|
50
50
|
},
|
|
51
51
|
{
|
|
52
|
-
field:
|
|
53
|
-
caption:
|
|
52
|
+
field: '2',
|
|
53
|
+
caption: 'gender'
|
|
54
54
|
},
|
|
55
55
|
{
|
|
56
|
-
field:
|
|
57
|
-
caption:
|
|
58
|
-
}
|
|
56
|
+
field: '3',
|
|
57
|
+
caption: 'hobby'
|
|
58
|
+
}
|
|
59
59
|
],
|
|
60
|
-
records: new Array(1000).fill([
|
|
60
|
+
records: new Array(1000).fill(['John', 18, 'male', '🏀'])
|
|
61
61
|
};
|
|
62
62
|
|
|
63
63
|
const tableInstance = new VTable.ListTable(option);
|
|
64
64
|
|
|
65
|
-
//
|
|
66
|
-
downloadCsv(exportVTableToCsv(tableInstance), 'export-csv');
|
|
67
|
-
|
|
68
|
-
// donload excel file
|
|
69
|
-
downloadExcel(await exportVTableToExcel(tableInstance), 'export-excel');
|
|
65
|
+
// download csv file
|
|
66
|
+
await downloadCsv(exportVTableToCsv(tableInstance), 'export-csv');
|
|
70
67
|
|
|
68
|
+
// download excel file
|
|
69
|
+
await downloadExcel(await exportVTableToExcel(tableInstance), 'export-excel');
|
|
71
70
|
```
|
|
72
71
|
|
|
73
72
|
##
|
|
@@ -80,9 +79,9 @@ downloadExcel(await exportVTableToExcel(tableInstance), 'export-excel');
|
|
|
80
79
|
|
|
81
80
|
# Ecosystem
|
|
82
81
|
|
|
83
|
-
| Project
|
|
84
|
-
|
|
|
85
|
-
| [AI-generated Components](https://visactor.io/ai-vtable)
|
|
82
|
+
| Project | Description |
|
|
83
|
+
| -------------------------------------------------------- | ----------------------------- |
|
|
84
|
+
| [AI-generated Components](https://visactor.io/ai-vtable) | AI-generated table component. |
|
|
86
85
|
|
|
87
86
|
# Contribution
|
|
88
87
|
|
package/cjs/util/download.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function downloadCsv(str: string, name: string): void
|
|
2
|
-
export declare function downloadExcel(arrayBuffer: ArrayBuffer, name: string): void
|
|
1
|
+
export declare function downloadCsv(str: string, name: string): Promise<void>;
|
|
2
|
+
export declare function downloadExcel(arrayBuffer: ArrayBuffer, name: string): Promise<void>;
|
package/cjs/util/download.js
CHANGED
|
@@ -1,5 +1,31 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
|
|
4
|
+
return new (P || (P = Promise))((function(resolve, reject) {
|
|
5
|
+
function fulfilled(value) {
|
|
6
|
+
try {
|
|
7
|
+
step(generator.next(value));
|
|
8
|
+
} catch (e) {
|
|
9
|
+
reject(e);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
function rejected(value) {
|
|
13
|
+
try {
|
|
14
|
+
step(generator.throw(value));
|
|
15
|
+
} catch (e) {
|
|
16
|
+
reject(e);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
function step(result) {
|
|
20
|
+
var value;
|
|
21
|
+
result.done ? resolve(result.value) : (value = result.value, value instanceof P ? value : new P((function(resolve) {
|
|
22
|
+
resolve(value);
|
|
23
|
+
}))).then(fulfilled, rejected);
|
|
24
|
+
}
|
|
25
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
26
|
+
}));
|
|
27
|
+
};
|
|
28
|
+
|
|
3
29
|
Object.defineProperty(exports, "__esModule", {
|
|
4
30
|
value: !0
|
|
5
31
|
}), exports.downloadExcel = exports.downloadCsv = void 0;
|
|
@@ -7,17 +33,21 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
33
|
const file_saver_1 = require("file-saver");
|
|
8
34
|
|
|
9
35
|
function downloadCsv(str, name) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
36
|
+
return __awaiter(this, void 0, void 0, (function*() {
|
|
37
|
+
const blob = new Blob([ `\ufeff${str}` ], {
|
|
38
|
+
type: "text/csv;charset=utf-8"
|
|
39
|
+
});
|
|
40
|
+
yield (0, file_saver_1.saveAs)(blob, `${name}.csv`);
|
|
41
|
+
}));
|
|
14
42
|
}
|
|
15
43
|
|
|
16
44
|
function downloadExcel(arrayBuffer, name) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
45
|
+
return __awaiter(this, void 0, void 0, (function*() {
|
|
46
|
+
const blob = new Blob([ arrayBuffer ], {
|
|
47
|
+
type: "application/octet-stream"
|
|
48
|
+
});
|
|
49
|
+
yield (0, file_saver_1.saveAs)(blob, `${name}.xlsx`);
|
|
50
|
+
}));
|
|
21
51
|
}
|
|
22
52
|
|
|
23
53
|
function workSheetStr2ArrayBuffer(workSheetStr) {
|
package/cjs/util/download.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["util/download.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["util/download.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAoC;AAEpC,SAAsB,WAAW,CAAC,GAAW,EAAE,IAAY;;QACzD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE;YACtC,IAAI,EAAE,wBAAwB;SAC/B,CAAC,CAAC;QAEH,MAAM,IAAA,mBAAM,EAAC,IAAI,EAAE,GAAG,IAAI,MAAM,CAAC,CAAC;IACpC,CAAC;CAAA;AAND,kCAMC;AAED,SAAsB,aAAa,CAAC,WAAwB,EAAE,IAAY;;QAExE,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,WAAW,CAAC,EAAE;YACnC,IAAI,EAAE,0BAA0B;SACjC,CAAC,CAAC;QAEH,MAAM,IAAA,mBAAM,EAAC,IAAI,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;IACrC,CAAC;CAAA;AAPD,sCAOC;AAED,SAAS,wBAAwB,CAAC,YAAoB;IACpD,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IAE3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;QAC5C,WAAW,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;KACpD;IAED,OAAO,MAAM,CAAC;AAChB,CAAC","file":"download.js","sourcesContent":["import { saveAs } from 'file-saver';\n\nexport async function downloadCsv(str: string, name: string) {\n const blob = new Blob([`\\ufeff${str}`], {\n type: 'text/csv;charset=utf-8'\n });\n\n await saveAs(blob, `${name}.csv`);\n}\n\nexport async function downloadExcel(arrayBuffer: ArrayBuffer, name: string) {\n // const arrayBuffer = workSheetStr2ArrayBuffer(workSheetStr);\n const blob = new Blob([arrayBuffer], {\n type: 'application/octet-stream'\n });\n\n await saveAs(blob, `${name}.xlsx`);\n}\n\nfunction workSheetStr2ArrayBuffer(workSheetStr: string) {\n const buffer = new ArrayBuffer(workSheetStr.length);\n const arrayBuffer = new Uint8Array(buffer);\n\n for (let i = 0; i < workSheetStr.length; ++i) {\n arrayBuffer[i] = workSheetStr.charCodeAt(i) & 0xff;\n }\n\n return buffer;\n}\n"]}
|
package/dist/vtable-export.js
CHANGED
|
@@ -155,17 +155,17 @@
|
|
|
155
155
|
})(FileSaver_min);
|
|
156
156
|
var FileSaver_minExports = FileSaver_min.exports;
|
|
157
157
|
|
|
158
|
-
function downloadCsv(str, name) {
|
|
158
|
+
async function downloadCsv(str, name) {
|
|
159
159
|
const blob = new Blob([`\ufeff${str}`], {
|
|
160
160
|
type: 'text/csv;charset=utf-8'
|
|
161
161
|
});
|
|
162
|
-
FileSaver_minExports.saveAs(blob, `${name}.csv`);
|
|
162
|
+
await FileSaver_minExports.saveAs(blob, `${name}.csv`);
|
|
163
163
|
}
|
|
164
|
-
function downloadExcel(arrayBuffer, name) {
|
|
164
|
+
async function downloadExcel(arrayBuffer, name) {
|
|
165
165
|
const blob = new Blob([arrayBuffer], {
|
|
166
166
|
type: 'application/octet-stream'
|
|
167
167
|
});
|
|
168
|
-
FileSaver_minExports.saveAs(blob, `${name}.xlsx`);
|
|
168
|
+
await FileSaver_minExports.saveAs(blob, `${name}.xlsx`);
|
|
169
169
|
}
|
|
170
170
|
|
|
171
171
|
function commonjsRequire(path) {
|
|
@@ -34,4 +34,4 @@ Object.defineProperty(r,"__esModule",{value:!0}),r.CHAR="--�𐀀-",
|
|
|
34
34
|
* @license MIT
|
|
35
35
|
* @copyright Louis-Dominique Dubeau
|
|
36
36
|
*/
|
|
37
|
-
function n(e){return e>=65&&e<=90||95===e||e>=97&&e<=122||e>=192&&e<=214||e>=216&&e<=246||e>=248&&e<=767||e>=880&&e<=893||e>=895&&e<=8191||e>=8204&&e<=8205||e>=8304&&e<=8591||e>=11264&&e<=12271||e>=12289&&e<=55295||e>=63744&&e<=64975||e>=65008&&e<=65533||e>=65536&&e<=983039}Object.defineProperty(r,"__esModule",{value:!0}),r.NC_NAME_START_CHAR="A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ--⁰-Ⰰ-、-豈-﷏ﷰ-�𐀀-",r.NC_NAME_CHAR="-"+r.NC_NAME_START_CHAR+".0-9·̀-ͯ‿-⁀",r.NC_NAME_START_CHAR_RE=new RegExp("^["+r.NC_NAME_START_CHAR+"]$","u"),r.NC_NAME_CHAR_RE=new RegExp("^["+r.NC_NAME_CHAR+"]$","u"),r.NC_NAME_RE=new RegExp("^["+r.NC_NAME_START_CHAR+"]["+r.NC_NAME_CHAR+"]*$","u"),r.isNCNameStartChar=n,r.isNCNameChar=function(e){return n(e)||45===e||46===e||e>=48&&e<=57||183===e||e>=768&&e<=879||e>=8255&&e<=8256}},{}]},{},[15])(15)}(l);var c=i(l.exports);function h(e,t){let r="";for(let t=e+1;t>0;t=Math.floor((t-1)/26))r=String.fromCharCode((t-1)%26+65)+r;return r+(t+1)}var u=(e,t)=>Object.prototype.toString.call(e)===`[object ${t}]`;var f=e=>null!=e;var d=e=>Array.isArray?Array.isArray(e):u(e,"Array");var p=function(e){const t=typeof e;return arguments.length>1&&void 0!==arguments[1]&&arguments[1]?"number"===t:"number"===t||u(e,"Number")};function m(e){if(!e)return[0,0,0];if(e.startsWith("#")){let t=e.substring(1);3===t.length&&(t=t.replace(/(.)/g,"$1$1"));return[parseInt(t.substring(0,2),16),parseInt(t.substring(2,4),16),parseInt(t.substring(4,6),16)]}if(e.startsWith("rgb(")){return e.substring(4,e.length-1).split(",").map(Number)}if(e.startsWith("rgba(")){return e.substring(5,e.length-1).split(",").map(Number)}if(p(y[e]))return[(t=y[e])>>16,t>>8&255,255&t,1];if(p(g[e]))return function(e){return[e>>>24,e>>>16&255,e>>>8&255,255&e]}(g[e]);var t;throw new Error("Unsupported color format")}function b(e){if(3===e.length&&e.push(1),4!==e.length)throw new Error("Invalid RGBA array");const[t,r,n,i]=e.map(Math.round);return`${Math.round(255*i).toString(16).padStart(2,"0")}${t.toString(16).padStart(2,"0")}${r.toString(16).padStart(2,"0")}${n.toString(16).padStart(2,"0")}`}const g={transparent:4294967040},y={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function v(e,t){return{name:_(e.fontFamily)||"Arial",size:e.fontSize||10,bold:w(e.fontWeight),italic:"italic"===e.fontStyle,color:M("link"===t?e._linkColor:e.color),underline:e.underline}}function w(e){return"number"==typeof e?e>=600:Number(e)>=600||"bold"===e}function _(e){return e.split(",").map((e=>e.trim()))[0]}function x(e){return{type:"pattern",pattern:"solid",fgColor:M(e.bgColor)}}function k(e){const{borderColor:t,borderLineWidth:r,borderLineDash:n,_strokeArrayWidth:i,_strokeArrayColor:s}=e;if(s||i){const e={};return s&&!s[0]||i&&!i[0]||(e.top={style:S(i?.[0]??r,n),color:M(s?.[0]??t)}),s&&!s[1]||i&&!i[1]||(e.right={style:S(i?.[1]??r,n),color:M(s?.[1]??t)}),s&&!s[2]||i&&!i[2]||(e.bottom={style:S(i?.[2]??r,n),color:M(s?.[2]??t)}),s&&!s[3]||i&&!i[3]||(e.left={style:S(i?.[3]??r,n),color:M(s?.[3]??t)}),e}if(0===r)return{};const o={style:S(r,n),color:M(t)};return{top:o,left:o,bottom:o,right:o}}function S(e,t){return t&&t.length?e<=2?"dashed":"mediumDashed":e<=.5?"hair":e<=1?"thin":e<=2?"medium":"thick"}function C(e,t){return{horizontal:e.textAlign||"left",vertical:e.textBaseline||"middle",wrapText:e.autoWrapText||!1,indent:t||0}}function M(e){return{argb:b(m(e))}}function T(e,t,r){let n=0;const i=r.internalProps.layoutMap;if(i.isHeader(e,t)){const r=i.getHeader(e,t);f(r?.hierarchyLevel)&&(n=(r.hierarchyLevel??0)*(i.rowHierarchyIndent??0))}else{const s=r.getBodyColumnDefine(e,t);if(s?.tree){const s=r.dataSource.getIndexKey(r.getRecordShowIndexByCell(e,t));n=Array.isArray(s)&&"none"!==r.getHierarchyState(e,t)?(s.length-1)*(i.hierarchyIndent??0):0}}return n}async function E(e,r,n,i,s,o){const{layoutMap:a}=n.internalProps,l=n.getCellType(e,r),c=n.getCellRawRecord(e,r);let u=(c&&c.vtableMergeName)??n.getCellValue(e,r);var f;!(f=u)||"object"!=typeof f&&"function"!=typeof f||"function"!=typeof f.then||(u=await u);const p=n.getCellStyle(e,r),m=n.getCellLocation(e,r),b="body"!==m?n.getHeaderDefine(e,r):n.getBodyColumnDefine(e,r);let g,y,w,_;if(("body"!==m||(b?.dragOrder||!!b?.icon||!!b?.tree))&&(g=n.getCellIcons(e,r)),"body"!==m?(y=b?.headerCustomRender,w=b?.headerCustomLayout):(y=b?.customRender||n.customRender,w=b?.customLayout),o?.formatExportOutput){const t={cellType:l,cellValue:u,table:n,col:e,row:r},s=o.formatExportOutput(t);if(void 0!==s){let t=i.getCell(h(e,r));t.value=s,t.font=v(p,l),t.fill=x(p),t.border=k(p);const a=T(e,r,n);if(t.alignment=C(p,Math.ceil(a/t.font.size)),t&&o?.formatExcelJSCell){const i=o.formatExcelJSCell({cellType:l,cellValue:u,table:n,col:e,row:r},t);i&&(t=i)}return t}}if("image"===l||"video"===l||"progressbar"===l||"sparkline"===l||a.isAxisCell(e,r)||!o?.ignoreIcon&&d(g)&&g.length||y||w)if(R(l,a.isAxisCell(e,r),!!y||!!w,!(o?.ignoreIcon||!d(g)||!g.length),o)){const t=A(e,r,n),o=s.addImage({base64:t,extension:"png"});i.addImage(o,{tl:{col:e+1/80,row:r+1/120},br:{col:e+1,row:r+1},editAs:"oneCell"})}else _=i.getCell(h(e,r));else if("text"===l||"link"===l){_=i.getCell(h(e,r)),_.value=function(e,t){if("link"===t)return{text:e,hyperlink:e,tooltip:e};return e}(u,l),_.font=v(p,l),_.fill=x(p),_.border=k(p);const t=T(e,r,n);_.alignment=C(p,Math.ceil(t/_.font.size))}else if("chart"===l)if(R("chart",!1,!1,!1,o)){const o=n.scenegraph.getCell(e,r);t.renderChart(o.firstChild);const a=A(e,r,n),l=s.addImage({base64:a,extension:"png"});i.addImage(l,{tl:{col:e+1/80,row:r+1/120},br:{col:e+1,row:r+1},editAs:"oneCell"}),n.scenegraph.updateNextFrame()}else _=i.getCell(h(e,r));if(_&&o?.formatExcelJSCell){const t=o.formatExcelJSCell({cellType:l,cellValue:u,table:n,col:e,row:r},_);t&&(_=t)}return _}function A(e,r,n){let i=n.scenegraph.getCell(e,r),s=!1;"empty"===i.role&&(i=t.updateCell(e,r,n,!0),i.setStage(n.scenegraph.stage),s=!0,i.stage.dirtyBounds.set(-1/0,-1/0,1/0,1/0));const o=i.attribute.stroke;i.attribute.stroke=!1;const a=t.graphicUtil.drawGraphicToCanvas(i,n.scenegraph.stage);return i.attribute.stroke=o,s&&i.parent?.removeChild(i),a.toDataURL()}function R(e,t,r,n,i){return!i?.skipImageExportCellType||("image"===e||"video"===e||"progressbar"===e||"sparkline"===e||"chart"===e?!i.skipImageExportCellType.includes(e):t?!i.skipImageExportCellType.includes("chart"):r?!i.skipImageExportCellType.includes("custom"):!n||!i.skipImageExportCellType.includes("textWithIcon"))}e.downloadCsv=function(e,t){const r=new Blob([`\ufeff${e}`],{type:"text/csv;charset=utf-8"});o.saveAs(r,`${t}.csv`)},e.downloadExcel=function(e,t){const r=new Blob([e],{type:"application/octet-stream"});o.saveAs(r,`${t}.xlsx`)},e.exportVTableToCsv=function(e,t){const n=e.rowCount-1,i=e.colCount-1;let s="";for(let o=0;o<=n;o++){for(let n=0;n<=i;n++){const i=r(n,o,e,t);if("undefined"!=typeof Promise&&i instanceof Promise);else{const e=`${i}`;/^\[object .*\]$/.exec(e)||(s+=e)}s+=","}s+="\r\n"}return s},e.exportVTableToExcel=async function(e,t){const r=new c.Workbook,n=r.addWorksheet("sheet1");n.properties.defaultRowHeight=40;const i=[],s=e.rowCount-1,o=e.colCount-1,a=[],l=new Set;for(let c=0;c<=o;c++){const o=e.getColWidth(c);i[c]={width:o/6};for(let i=0;i<=s;i++){if(0===c){const t=e.getRowHeight(i);n.getRow(i+1).height=t}await E(c,i,e,n,r,t);const s=e.getCellRange(c,i);if(s.start.col!==s.end.col||s.start.row!==s.end.row){const e=`${s.start.col},${s.start.row}:${s.end.col},${s.end.row}}`;l.has(e)||(l.add(e),a.push(s))}}}n.columns=i,a.forEach((e=>{n.mergeCells(e.start.row+1,e.start.col+1,e.end.row+1,e.end.col+1)}));const u=[];return e.frozenRowCount>0&&u.push({state:"frozen",ySplit:e.frozenRowCount,topLeftCell:h(0,e.frozenRowCount)}),e.frozenColCount>0&&u.push({state:"frozen",xSplit:e.frozenColCount,topLeftCell:h(e.frozenColCount,0)}),n.views=u,t?.excelJSWorksheetCallback&&t.excelJSWorksheetCallback(n),await r.xlsx.writeBuffer()}}));
|
|
37
|
+
function n(e){return e>=65&&e<=90||95===e||e>=97&&e<=122||e>=192&&e<=214||e>=216&&e<=246||e>=248&&e<=767||e>=880&&e<=893||e>=895&&e<=8191||e>=8204&&e<=8205||e>=8304&&e<=8591||e>=11264&&e<=12271||e>=12289&&e<=55295||e>=63744&&e<=64975||e>=65008&&e<=65533||e>=65536&&e<=983039}Object.defineProperty(r,"__esModule",{value:!0}),r.NC_NAME_START_CHAR="A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ--⁰-Ⰰ-、-豈-﷏ﷰ-�𐀀-",r.NC_NAME_CHAR="-"+r.NC_NAME_START_CHAR+".0-9·̀-ͯ‿-⁀",r.NC_NAME_START_CHAR_RE=new RegExp("^["+r.NC_NAME_START_CHAR+"]$","u"),r.NC_NAME_CHAR_RE=new RegExp("^["+r.NC_NAME_CHAR+"]$","u"),r.NC_NAME_RE=new RegExp("^["+r.NC_NAME_START_CHAR+"]["+r.NC_NAME_CHAR+"]*$","u"),r.isNCNameStartChar=n,r.isNCNameChar=function(e){return n(e)||45===e||46===e||e>=48&&e<=57||183===e||e>=768&&e<=879||e>=8255&&e<=8256}},{}]},{},[15])(15)}(l);var c=i(l.exports);function h(e,t){let r="";for(let t=e+1;t>0;t=Math.floor((t-1)/26))r=String.fromCharCode((t-1)%26+65)+r;return r+(t+1)}var u=(e,t)=>Object.prototype.toString.call(e)===`[object ${t}]`;var f=e=>null!=e;var d=e=>Array.isArray?Array.isArray(e):u(e,"Array");var p=function(e){const t=typeof e;return arguments.length>1&&void 0!==arguments[1]&&arguments[1]?"number"===t:"number"===t||u(e,"Number")};function m(e){if(!e)return[0,0,0];if(e.startsWith("#")){let t=e.substring(1);3===t.length&&(t=t.replace(/(.)/g,"$1$1"));return[parseInt(t.substring(0,2),16),parseInt(t.substring(2,4),16),parseInt(t.substring(4,6),16)]}if(e.startsWith("rgb(")){return e.substring(4,e.length-1).split(",").map(Number)}if(e.startsWith("rgba(")){return e.substring(5,e.length-1).split(",").map(Number)}if(p(y[e]))return[(t=y[e])>>16,t>>8&255,255&t,1];if(p(g[e]))return function(e){return[e>>>24,e>>>16&255,e>>>8&255,255&e]}(g[e]);var t;throw new Error("Unsupported color format")}function b(e){if(3===e.length&&e.push(1),4!==e.length)throw new Error("Invalid RGBA array");const[t,r,n,i]=e.map(Math.round);return`${Math.round(255*i).toString(16).padStart(2,"0")}${t.toString(16).padStart(2,"0")}${r.toString(16).padStart(2,"0")}${n.toString(16).padStart(2,"0")}`}const g={transparent:4294967040},y={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function v(e,t){return{name:_(e.fontFamily)||"Arial",size:e.fontSize||10,bold:w(e.fontWeight),italic:"italic"===e.fontStyle,color:M("link"===t?e._linkColor:e.color),underline:e.underline}}function w(e){return"number"==typeof e?e>=600:Number(e)>=600||"bold"===e}function _(e){return e.split(",").map((e=>e.trim()))[0]}function x(e){return{type:"pattern",pattern:"solid",fgColor:M(e.bgColor)}}function k(e){const{borderColor:t,borderLineWidth:r,borderLineDash:n,_strokeArrayWidth:i,_strokeArrayColor:s}=e;if(s||i){const e={};return s&&!s[0]||i&&!i[0]||(e.top={style:S(i?.[0]??r,n),color:M(s?.[0]??t)}),s&&!s[1]||i&&!i[1]||(e.right={style:S(i?.[1]??r,n),color:M(s?.[1]??t)}),s&&!s[2]||i&&!i[2]||(e.bottom={style:S(i?.[2]??r,n),color:M(s?.[2]??t)}),s&&!s[3]||i&&!i[3]||(e.left={style:S(i?.[3]??r,n),color:M(s?.[3]??t)}),e}if(0===r)return{};const o={style:S(r,n),color:M(t)};return{top:o,left:o,bottom:o,right:o}}function S(e,t){return t&&t.length?e<=2?"dashed":"mediumDashed":e<=.5?"hair":e<=1?"thin":e<=2?"medium":"thick"}function C(e,t){return{horizontal:e.textAlign||"left",vertical:e.textBaseline||"middle",wrapText:e.autoWrapText||!1,indent:t||0}}function M(e){return{argb:b(m(e))}}function T(e,t,r){let n=0;const i=r.internalProps.layoutMap;if(i.isHeader(e,t)){const r=i.getHeader(e,t);f(r?.hierarchyLevel)&&(n=(r.hierarchyLevel??0)*(i.rowHierarchyIndent??0))}else{const s=r.getBodyColumnDefine(e,t);if(s?.tree){const s=r.dataSource.getIndexKey(r.getRecordShowIndexByCell(e,t));n=Array.isArray(s)&&"none"!==r.getHierarchyState(e,t)?(s.length-1)*(i.hierarchyIndent??0):0}}return n}async function E(e,r,n,i,s,o){const{layoutMap:a}=n.internalProps,l=n.getCellType(e,r),c=n.getCellRawRecord(e,r);let u=(c&&c.vtableMergeName)??n.getCellValue(e,r);var f;!(f=u)||"object"!=typeof f&&"function"!=typeof f||"function"!=typeof f.then||(u=await u);const p=n.getCellStyle(e,r),m=n.getCellLocation(e,r),b="body"!==m?n.getHeaderDefine(e,r):n.getBodyColumnDefine(e,r);let g,y,w,_;if(("body"!==m||(b?.dragOrder||!!b?.icon||!!b?.tree))&&(g=n.getCellIcons(e,r)),"body"!==m?(y=b?.headerCustomRender,w=b?.headerCustomLayout):(y=b?.customRender||n.customRender,w=b?.customLayout),o?.formatExportOutput){const t={cellType:l,cellValue:u,table:n,col:e,row:r},s=o.formatExportOutput(t);if(void 0!==s){let t=i.getCell(h(e,r));t.value=s,t.font=v(p,l),t.fill=x(p),t.border=k(p);const a=T(e,r,n);if(t.alignment=C(p,Math.ceil(a/t.font.size)),t&&o?.formatExcelJSCell){const i=o.formatExcelJSCell({cellType:l,cellValue:u,table:n,col:e,row:r},t);i&&(t=i)}return t}}if("image"===l||"video"===l||"progressbar"===l||"sparkline"===l||a.isAxisCell(e,r)||!o?.ignoreIcon&&d(g)&&g.length||y||w)if(R(l,a.isAxisCell(e,r),!!y||!!w,!(o?.ignoreIcon||!d(g)||!g.length),o)){const t=A(e,r,n),o=s.addImage({base64:t,extension:"png"});i.addImage(o,{tl:{col:e+1/80,row:r+1/120},br:{col:e+1,row:r+1},editAs:"oneCell"})}else _=i.getCell(h(e,r));else if("text"===l||"link"===l){_=i.getCell(h(e,r)),_.value=function(e,t){if("link"===t)return{text:e,hyperlink:e,tooltip:e};return e}(u,l),_.font=v(p,l),_.fill=x(p),_.border=k(p);const t=T(e,r,n);_.alignment=C(p,Math.ceil(t/_.font.size))}else if("chart"===l)if(R("chart",!1,!1,!1,o)){const o=n.scenegraph.getCell(e,r);t.renderChart(o.firstChild);const a=A(e,r,n),l=s.addImage({base64:a,extension:"png"});i.addImage(l,{tl:{col:e+1/80,row:r+1/120},br:{col:e+1,row:r+1},editAs:"oneCell"}),n.scenegraph.updateNextFrame()}else _=i.getCell(h(e,r));if(_&&o?.formatExcelJSCell){const t=o.formatExcelJSCell({cellType:l,cellValue:u,table:n,col:e,row:r},_);t&&(_=t)}return _}function A(e,r,n){let i=n.scenegraph.getCell(e,r),s=!1;"empty"===i.role&&(i=t.updateCell(e,r,n,!0),i.setStage(n.scenegraph.stage),s=!0,i.stage.dirtyBounds.set(-1/0,-1/0,1/0,1/0));const o=i.attribute.stroke;i.attribute.stroke=!1;const a=t.graphicUtil.drawGraphicToCanvas(i,n.scenegraph.stage);return i.attribute.stroke=o,s&&i.parent?.removeChild(i),a.toDataURL()}function R(e,t,r,n,i){return!i?.skipImageExportCellType||("image"===e||"video"===e||"progressbar"===e||"sparkline"===e||"chart"===e?!i.skipImageExportCellType.includes(e):t?!i.skipImageExportCellType.includes("chart"):r?!i.skipImageExportCellType.includes("custom"):!n||!i.skipImageExportCellType.includes("textWithIcon"))}e.downloadCsv=async function(e,t){const r=new Blob([`\ufeff${e}`],{type:"text/csv;charset=utf-8"});await o.saveAs(r,`${t}.csv`)},e.downloadExcel=async function(e,t){const r=new Blob([e],{type:"application/octet-stream"});await o.saveAs(r,`${t}.xlsx`)},e.exportVTableToCsv=function(e,t){const n=e.rowCount-1,i=e.colCount-1;let s="";for(let o=0;o<=n;o++){for(let n=0;n<=i;n++){const i=r(n,o,e,t);if("undefined"!=typeof Promise&&i instanceof Promise);else{const e=`${i}`;/^\[object .*\]$/.exec(e)||(s+=e)}s+=","}s+="\r\n"}return s},e.exportVTableToExcel=async function(e,t){const r=new c.Workbook,n=r.addWorksheet("sheet1");n.properties.defaultRowHeight=40;const i=[],s=e.rowCount-1,o=e.colCount-1,a=[],l=new Set;for(let c=0;c<=o;c++){const o=e.getColWidth(c);i[c]={width:o/6};for(let i=0;i<=s;i++){if(0===c){const t=e.getRowHeight(i);n.getRow(i+1).height=t}await E(c,i,e,n,r,t);const s=e.getCellRange(c,i);if(s.start.col!==s.end.col||s.start.row!==s.end.row){const e=`${s.start.col},${s.start.row}:${s.end.col},${s.end.row}}`;l.has(e)||(l.add(e),a.push(s))}}}n.columns=i,a.forEach((e=>{n.mergeCells(e.start.row+1,e.start.col+1,e.end.row+1,e.end.col+1)}));const u=[];return e.frozenRowCount>0&&u.push({state:"frozen",ySplit:e.frozenRowCount,topLeftCell:h(0,e.frozenRowCount)}),e.frozenColCount>0&&u.push({state:"frozen",xSplit:e.frozenColCount,topLeftCell:h(e.frozenColCount,0)}),n.views=u,t?.excelJSWorksheetCallback&&t.excelJSWorksheetCallback(n),await r.xlsx.writeBuffer()}}));
|
package/es/util/download.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function downloadCsv(str: string, name: string): void
|
|
2
|
-
export declare function downloadExcel(arrayBuffer: ArrayBuffer, name: string): void
|
|
1
|
+
export declare function downloadCsv(str: string, name: string): Promise<void>;
|
|
2
|
+
export declare function downloadExcel(arrayBuffer: ArrayBuffer, name: string): Promise<void>;
|
package/es/util/download.js
CHANGED
|
@@ -1,17 +1,47 @@
|
|
|
1
|
+
var __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
|
|
2
|
+
return new (P || (P = Promise))((function(resolve, reject) {
|
|
3
|
+
function fulfilled(value) {
|
|
4
|
+
try {
|
|
5
|
+
step(generator.next(value));
|
|
6
|
+
} catch (e) {
|
|
7
|
+
reject(e);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
function rejected(value) {
|
|
11
|
+
try {
|
|
12
|
+
step(generator.throw(value));
|
|
13
|
+
} catch (e) {
|
|
14
|
+
reject(e);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function step(result) {
|
|
18
|
+
var value;
|
|
19
|
+
result.done ? resolve(result.value) : (value = result.value, value instanceof P ? value : new P((function(resolve) {
|
|
20
|
+
resolve(value);
|
|
21
|
+
}))).then(fulfilled, rejected);
|
|
22
|
+
}
|
|
23
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
24
|
+
}));
|
|
25
|
+
};
|
|
26
|
+
|
|
1
27
|
import { saveAs } from "file-saver";
|
|
2
28
|
|
|
3
29
|
export function downloadCsv(str, name) {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
30
|
+
return __awaiter(this, void 0, void 0, (function*() {
|
|
31
|
+
const blob = new Blob([ `\ufeff${str}` ], {
|
|
32
|
+
type: "text/csv;charset=utf-8"
|
|
33
|
+
});
|
|
34
|
+
yield saveAs(blob, `${name}.csv`);
|
|
35
|
+
}));
|
|
8
36
|
}
|
|
9
37
|
|
|
10
38
|
export function downloadExcel(arrayBuffer, name) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
39
|
+
return __awaiter(this, void 0, void 0, (function*() {
|
|
40
|
+
const blob = new Blob([ arrayBuffer ], {
|
|
41
|
+
type: "application/octet-stream"
|
|
42
|
+
});
|
|
43
|
+
yield saveAs(blob, `${name}.xlsx`);
|
|
44
|
+
}));
|
|
15
45
|
}
|
|
16
46
|
|
|
17
47
|
function workSheetStr2ArrayBuffer(workSheetStr) {
|
package/es/util/download.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["util/download.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpC,MAAM,
|
|
1
|
+
{"version":3,"sources":["util/download.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpC,MAAM,UAAgB,WAAW,CAAC,GAAW,EAAE,IAAY;;QACzD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE;YACtC,IAAI,EAAE,wBAAwB;SAC/B,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,MAAM,CAAC,CAAC;IACpC,CAAC;CAAA;AAED,MAAM,UAAgB,aAAa,CAAC,WAAwB,EAAE,IAAY;;QAExE,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,WAAW,CAAC,EAAE;YACnC,IAAI,EAAE,0BAA0B;SACjC,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;IACrC,CAAC;CAAA;AAED,SAAS,wBAAwB,CAAC,YAAoB;IACpD,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IAE3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;QAC5C,WAAW,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;KACpD;IAED,OAAO,MAAM,CAAC;AAChB,CAAC","file":"download.js","sourcesContent":["import { saveAs } from 'file-saver';\n\nexport async function downloadCsv(str: string, name: string) {\n const blob = new Blob([`\\ufeff${str}`], {\n type: 'text/csv;charset=utf-8'\n });\n\n await saveAs(blob, `${name}.csv`);\n}\n\nexport async function downloadExcel(arrayBuffer: ArrayBuffer, name: string) {\n // const arrayBuffer = workSheetStr2ArrayBuffer(workSheetStr);\n const blob = new Blob([arrayBuffer], {\n type: 'application/octet-stream'\n });\n\n await saveAs(blob, `${name}.xlsx`);\n}\n\nfunction workSheetStr2ArrayBuffer(workSheetStr: string) {\n const buffer = new ArrayBuffer(workSheetStr.length);\n const arrayBuffer = new Uint8Array(buffer);\n\n for (let i = 0; i < workSheetStr.length; ++i) {\n arrayBuffer[i] = workSheetStr.charCodeAt(i) & 0xff;\n }\n\n return buffer;\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@visactor/vtable-export",
|
|
3
|
-
"version": "1.16.0
|
|
3
|
+
"version": "1.16.0",
|
|
4
4
|
"description": "The export util of VTable",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "VisActor",
|
|
@@ -30,11 +30,11 @@
|
|
|
30
30
|
"access": "public"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@visactor/vtable": "1.16.0-alpha.0",
|
|
34
33
|
"@visactor/vutils": "~0.19.1",
|
|
35
34
|
"file-saver": "2.0.5",
|
|
36
35
|
"@types/file-saver": "2.0.7",
|
|
37
|
-
"exceljs": "4.4.0"
|
|
36
|
+
"exceljs": "4.4.0",
|
|
37
|
+
"@visactor/vtable": "1.16.0"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"@visactor/vchart": "1.13.3-alpha.2",
|
|
@@ -78,9 +78,9 @@
|
|
|
78
78
|
"axios": "^1.4.0",
|
|
79
79
|
"@types/react-is": "^17.0.3",
|
|
80
80
|
"rollup-plugin-node-resolve": "5.2.0",
|
|
81
|
-
"@internal/bundler": "0.0.1",
|
|
82
81
|
"@internal/ts-config": "0.0.1",
|
|
83
|
-
"@internal/eslint-config": "0.0.1"
|
|
82
|
+
"@internal/eslint-config": "0.0.1",
|
|
83
|
+
"@internal/bundler": "0.0.1"
|
|
84
84
|
},
|
|
85
85
|
"scripts": {
|
|
86
86
|
"compile": "tsc --noEmit",
|