rapid-spreadjs 1.0.28 → 1.0.30
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/dist/index.cjs.js +120 -73
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.cjs.min.js +1 -1
- package/dist/index.cjs.min.js.map +1 -1
- package/dist/index.esm.js +120 -73
- package/dist/index.esm.js.map +1 -1
- package/dist/index.esm.min.js +1 -1
- package/dist/index.esm.min.js.map +1 -1
- package/dist/utils/sheet.d.ts +6 -0
- package/dist/utils/wookbook.d.ts +3 -1
- package/package.json +1 -1
package/dist/index.cjs.js
CHANGED
|
@@ -25,6 +25,77 @@ function _interopNamespaceDefault(e) {
|
|
|
25
25
|
var echarts__namespace = /*#__PURE__*/_interopNamespaceDefault(echarts);
|
|
26
26
|
var math__namespace = /*#__PURE__*/_interopNamespaceDefault(math);
|
|
27
27
|
|
|
28
|
+
/******************************************************************************
|
|
29
|
+
Copyright (c) Microsoft Corporation.
|
|
30
|
+
|
|
31
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
32
|
+
purpose with or without fee is hereby granted.
|
|
33
|
+
|
|
34
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
35
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
36
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
37
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
38
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
39
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
40
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
41
|
+
***************************************************************************** */
|
|
42
|
+
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
function __awaiter(thisArg, _arguments, P, generator) {
|
|
46
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
47
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
48
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
49
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
50
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
51
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
56
|
+
var e = new Error(message);
|
|
57
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* 公用工具函数属性
|
|
62
|
+
*/
|
|
63
|
+
const CommonUtils = {
|
|
64
|
+
/**
|
|
65
|
+
* 获取文件的字节流对象
|
|
66
|
+
* @param fileUrl 在线文件地址
|
|
67
|
+
* @returns 文件的字节流对象
|
|
68
|
+
*/
|
|
69
|
+
getFileBlob: (fileUrl) => __awaiter(void 0, void 0, void 0, function* () {
|
|
70
|
+
// 获取文件响应结果
|
|
71
|
+
const response = yield fetch(fileUrl, { method: 'GET' });
|
|
72
|
+
// 获取成功
|
|
73
|
+
if (response.ok) {
|
|
74
|
+
// 文件的字节流对象
|
|
75
|
+
const blob = yield response.blob();
|
|
76
|
+
return blob;
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
}),
|
|
82
|
+
/**
|
|
83
|
+
* 获取列的英文字母
|
|
84
|
+
* @param colIndex 列的索引
|
|
85
|
+
* @returns 返回英文字母
|
|
86
|
+
*/
|
|
87
|
+
getColLetterName: (colIndex) => {
|
|
88
|
+
colIndex += 1;
|
|
89
|
+
let letter = '';
|
|
90
|
+
while (colIndex > 0) {
|
|
91
|
+
const remainder = (colIndex - 1) % 26;
|
|
92
|
+
letter = String.fromCharCode(remainder + 65) + letter;
|
|
93
|
+
colIndex = Math.floor((colIndex - 1) / 26);
|
|
94
|
+
}
|
|
95
|
+
return letter.toUpperCase();
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
|
|
28
99
|
// 导入rapid-utils中的函数(注意:需要在tsconfig.json文件中设置moduleResolution为node,否则会提示:找不到模块“rapid-utils”。你的意思是要将 "moduleResolution" 选项设置为 "nodenext",还是要将别名添加到 "paths" 选项中?ts(2792))
|
|
29
100
|
/**
|
|
30
101
|
* SpreadJS工作表工具函数属性
|
|
@@ -505,6 +576,24 @@ const SheetUtils = {
|
|
|
505
576
|
sheet.setStyle(item.row, item.col, cellStyle);
|
|
506
577
|
});
|
|
507
578
|
},
|
|
579
|
+
/**
|
|
580
|
+
* 根据单元格范围获取范围字符串
|
|
581
|
+
* @param cellRange 单元格范围
|
|
582
|
+
* @returns 返回范围字符串,如:A1:B2
|
|
583
|
+
*/
|
|
584
|
+
getRangeStr: (cellRange) => {
|
|
585
|
+
// 计算起始位置
|
|
586
|
+
const startCol = CommonUtils.getColLetterName(cellRange.col);
|
|
587
|
+
// 行索引转Excel行号(从1开始)
|
|
588
|
+
const startRow = cellRange.row + 1;
|
|
589
|
+
// 计算结束位置
|
|
590
|
+
const endCol = CommonUtils.getColLetterName(cellRange.col + cellRange.colCount - 1);
|
|
591
|
+
// 结束行号 = 起始行 + 行数
|
|
592
|
+
const endRow = cellRange.row + cellRange.rowCount;
|
|
593
|
+
return `${startCol}${startRow}:${endCol}${endRow}`;
|
|
594
|
+
// // 或者使用SpreadJS提供的方法rangeToFormula
|
|
595
|
+
// return GC.Spread.Sheets.CalcEngine.rangeToFormula(cellRange);
|
|
596
|
+
},
|
|
508
597
|
};
|
|
509
598
|
|
|
510
599
|
/**
|
|
@@ -628,77 +717,6 @@ const BusinessUtils = {
|
|
|
628
717
|
},
|
|
629
718
|
};
|
|
630
719
|
|
|
631
|
-
/******************************************************************************
|
|
632
|
-
Copyright (c) Microsoft Corporation.
|
|
633
|
-
|
|
634
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
635
|
-
purpose with or without fee is hereby granted.
|
|
636
|
-
|
|
637
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
638
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
639
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
640
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
641
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
642
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
643
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
644
|
-
***************************************************************************** */
|
|
645
|
-
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
function __awaiter(thisArg, _arguments, P, generator) {
|
|
649
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
650
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
651
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
652
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
653
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
654
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
655
|
-
});
|
|
656
|
-
}
|
|
657
|
-
|
|
658
|
-
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
659
|
-
var e = new Error(message);
|
|
660
|
-
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
661
|
-
};
|
|
662
|
-
|
|
663
|
-
/**
|
|
664
|
-
* 公用工具函数属性
|
|
665
|
-
*/
|
|
666
|
-
const CommonUtils = {
|
|
667
|
-
/**
|
|
668
|
-
* 获取文件的字节流对象
|
|
669
|
-
* @param fileUrl 在线文件地址
|
|
670
|
-
* @returns 文件的字节流对象
|
|
671
|
-
*/
|
|
672
|
-
getFileBlob: (fileUrl) => __awaiter(void 0, void 0, void 0, function* () {
|
|
673
|
-
// 获取文件响应结果
|
|
674
|
-
const response = yield fetch(fileUrl, { method: 'GET' });
|
|
675
|
-
// 获取成功
|
|
676
|
-
if (response.ok) {
|
|
677
|
-
// 文件的字节流对象
|
|
678
|
-
const blob = yield response.blob();
|
|
679
|
-
return blob;
|
|
680
|
-
}
|
|
681
|
-
else {
|
|
682
|
-
return null;
|
|
683
|
-
}
|
|
684
|
-
}),
|
|
685
|
-
/**
|
|
686
|
-
* 获取列的英文字母
|
|
687
|
-
* @param colIndex 列的索引
|
|
688
|
-
* @returns 返回英文字母
|
|
689
|
-
*/
|
|
690
|
-
getColLetterName: (colIndex) => {
|
|
691
|
-
colIndex += 1;
|
|
692
|
-
let letter = '';
|
|
693
|
-
while (colIndex > 0) {
|
|
694
|
-
const remainder = (colIndex - 1) % 26;
|
|
695
|
-
letter = String.fromCharCode(remainder + 65) + letter;
|
|
696
|
-
colIndex = Math.floor((colIndex - 1) / 26);
|
|
697
|
-
}
|
|
698
|
-
return letter.toUpperCase();
|
|
699
|
-
},
|
|
700
|
-
};
|
|
701
|
-
|
|
702
720
|
/**
|
|
703
721
|
* 公用方法,如:修约计算等
|
|
704
722
|
*/
|
|
@@ -8096,13 +8114,22 @@ const WorkbookUtils = {
|
|
|
8096
8114
|
* 合并多个工作簿并导出Excel(同时返回合并后的工作簿实例)
|
|
8097
8115
|
* @param GC Spread的GC对象
|
|
8098
8116
|
* @param spreads 工作簿实例集合
|
|
8117
|
+
* @param isExcel 是否导出为Excel文件,默认为true(如果为false,则导出为PDF)
|
|
8099
8118
|
* @param exportName 导出的文件名称,不传则为第一个Sheet的名称
|
|
8119
|
+
* @param regFonts 注册的字体集合,默认注册宋体和Arial字体
|
|
8100
8120
|
* @returns 合并后的工作簿实例
|
|
8101
8121
|
*/
|
|
8102
|
-
|
|
8122
|
+
mergeWorkbooksToExcelOrPdf: (GC_1, spreads_1, ...args_1) => __awaiter(void 0, [GC_1, spreads_1, ...args_1], void 0, function* (GC, spreads, isExcel = true, exportName, regFonts = [
|
|
8123
|
+
{ name: '宋体', type: 'normal', url: '/spreadJsFonts/simsun.ttf' },
|
|
8124
|
+
{ name: 'Arial', type: 'normal', url: '/spreadJsFonts/arial.ttf' },
|
|
8125
|
+
]) {
|
|
8103
8126
|
if (!spreads || spreads.length == 0) {
|
|
8104
8127
|
return;
|
|
8105
8128
|
}
|
|
8129
|
+
// 导出PDF的时候,注册字体(必须在初始化Workbook前注册)
|
|
8130
|
+
if (!isExcel) {
|
|
8131
|
+
yield WorkbookUtils.registerFont(GC, regFonts);
|
|
8132
|
+
}
|
|
8106
8133
|
// 主工作簿
|
|
8107
8134
|
const mainWorkbook = new GC.Spread.Sheets.Workbook();
|
|
8108
8135
|
// 暂停绘制
|
|
@@ -8172,10 +8199,30 @@ const WorkbookUtils = {
|
|
|
8172
8199
|
mainWorkbook.options.showVerticalScrollbar = true;
|
|
8173
8200
|
// 滚动条是否与活动工作表的最后一行和最后一列对齐(避免滚动的时候出现灰色区域)
|
|
8174
8201
|
mainWorkbook.options.scrollbarMaxAlign = false;
|
|
8202
|
+
// 导出PDF时
|
|
8203
|
+
if (!isExcel) {
|
|
8204
|
+
// 获取最后一个要打印的PDF工作表
|
|
8205
|
+
const pdfSheet = mainWorkbook.getSheet(mainWorkbook.getSheetCount() - 1);
|
|
8206
|
+
let printInfo = pdfSheet.printInfo();
|
|
8207
|
+
printInfo.margin({ top: 0, bottom: 0, left: 0, right: 0, header: 0, footer: 0 });
|
|
8208
|
+
printInfo.showBorder(false);
|
|
8209
|
+
printInfo.showGridLine(false);
|
|
8210
|
+
printInfo.blackAndWhite(false);
|
|
8211
|
+
printInfo.showRowHeader(GC.Spread.Sheets.Print.PrintVisibilityType.hide);
|
|
8212
|
+
printInfo.showColumnHeader(GC.Spread.Sheets.Print.PrintVisibilityType.hide);
|
|
8213
|
+
printInfo.zoomFactor(1.06); //1.06
|
|
8214
|
+
}
|
|
8175
8215
|
// 恢复绘制
|
|
8176
8216
|
mainWorkbook.resumePaint();
|
|
8177
8217
|
// 导出Excel文件
|
|
8178
|
-
|
|
8218
|
+
if (isExcel) {
|
|
8219
|
+
WorkbookUtils.exportToExcel(GC, mainWorkbook, exportName);
|
|
8220
|
+
}
|
|
8221
|
+
else {
|
|
8222
|
+
mainWorkbook.savePDF(function (blob) {
|
|
8223
|
+
fileSaver.saveAs(blob, `${exportName && exportName.length > 0 ? exportName : '文件'}.pdf`);
|
|
8224
|
+
}, console.log);
|
|
8225
|
+
}
|
|
8179
8226
|
return mainWorkbook;
|
|
8180
8227
|
}),
|
|
8181
8228
|
/**
|