@corbe30/fortune-excel 1.0.3 → 1.0.5
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 +24 -24
- package/dist/HandleZip.js +90 -34
- package/dist/ImportHelper.d.ts +2 -0
- package/dist/ImportHelper.js +51 -0
- package/dist/ToExcel/ExcelBorder.js +141 -141
- package/dist/ToExcel/ExcelConvert.js +19 -8
- package/dist/ToExcel/ExcelFile.js +66 -22
- package/dist/ToExcel/ExcelImage.js +27 -17
- package/dist/ToExcel/ExcelStyle.js +7 -7
- package/dist/ToFortuneSheet/FortuneBase.js +84 -28
- package/dist/ToFortuneSheet/FortuneCell.js +205 -185
- package/dist/ToFortuneSheet/FortuneFile.js +117 -111
- package/dist/ToFortuneSheet/FortuneImage.js +35 -15
- package/dist/ToFortuneSheet/FortuneSheet.js +217 -191
- package/dist/ToFortuneSheet/ReadXml.js +114 -87
- package/dist/ToolbarItem.d.ts +13 -0
- package/dist/ToolbarItem.js +67 -0
- package/dist/Transform.d.ts +2 -0
- package/dist/Transform.js +78 -0
- package/dist/common/constant.js +24 -24
- package/dist/common/emf.js +5 -5
- package/dist/common/method.js +169 -162
- package/dist/icons/ExportIcon.d.ts +3 -0
- package/dist/icons/ExportIcon.js +7 -0
- package/dist/icons/ImportIcon.d.ts +3 -0
- package/dist/icons/ImportIcon.js +7 -0
- package/dist/main.d.ts +2 -2
- package/dist/main.js +2 -24
- package/package.json +2 -2
- package/tsconfig.json +4 -3
- package/.github/workflows/main.yml +0 -30
|
@@ -10,16 +10,23 @@ var fillConvert = function (bg) {
|
|
|
10
10
|
// }
|
|
11
11
|
}
|
|
12
12
|
bg = bg.indexOf("rgb") > -1 ? rgb2hex(bg) : bg;
|
|
13
|
-
|
|
13
|
+
var fill = {
|
|
14
14
|
type: "pattern",
|
|
15
15
|
pattern: "solid",
|
|
16
16
|
fgColor: { argb: bg.replace("#", "") },
|
|
17
17
|
};
|
|
18
18
|
return fill;
|
|
19
19
|
};
|
|
20
|
-
var fontConvert = function (ff
|
|
20
|
+
var fontConvert = function (ff, fc, bl, it, fs, cl, ul) {
|
|
21
|
+
if (ff === void 0) { ff = ""; }
|
|
22
|
+
if (fc === void 0) { fc = "#000000"; }
|
|
23
|
+
if (bl === void 0) { bl = 0; }
|
|
24
|
+
if (it === void 0) { it = 0; }
|
|
25
|
+
if (fs === void 0) { fs = 10; }
|
|
26
|
+
if (cl === void 0) { cl = 0; }
|
|
27
|
+
if (ul === void 0) { ul = 0; }
|
|
21
28
|
// luckysheet:ff(样式), fc(颜色), bl(粗体), it(斜体), fs(大小), cl(删除线), ul(下划线)
|
|
22
|
-
|
|
29
|
+
var luckyToExcel = {
|
|
23
30
|
0: "微软雅黑",
|
|
24
31
|
1: "宋体(Song)",
|
|
25
32
|
2: "黑体(ST Heiti)",
|
|
@@ -37,8 +44,8 @@ var fontConvert = function (ff = "", fc = "#000000", bl = 0, it = 0, fs = 10, cl
|
|
|
37
44
|
return num === 0 ? false : true;
|
|
38
45
|
},
|
|
39
46
|
};
|
|
40
|
-
|
|
41
|
-
|
|
47
|
+
var color = (fc + "").indexOf("rgb") > -1 ? rgb2hex(fc) : fc;
|
|
48
|
+
var font = {
|
|
42
49
|
name: ff,
|
|
43
50
|
family: 1,
|
|
44
51
|
size: fs,
|
|
@@ -50,9 +57,13 @@ var fontConvert = function (ff = "", fc = "#000000", bl = 0, it = 0, fs = 10, cl
|
|
|
50
57
|
};
|
|
51
58
|
return font;
|
|
52
59
|
};
|
|
53
|
-
var alignmentConvert = function (vt
|
|
60
|
+
var alignmentConvert = function (vt, ht, tb, tr) {
|
|
61
|
+
if (vt === void 0) { vt = ALIGNMENT_DEFAULT; }
|
|
62
|
+
if (ht === void 0) { ht = ALIGNMENT_DEFAULT; }
|
|
63
|
+
if (tb === void 0) { tb = ALIGNMENT_DEFAULT; }
|
|
64
|
+
if (tr === void 0) { tr = ALIGNMENT_DEFAULT; }
|
|
54
65
|
// luckysheet:vt(垂直), ht(水平), tb(换行), tr(旋转)
|
|
55
|
-
|
|
66
|
+
var luckyToExcel = {
|
|
56
67
|
vertical: {
|
|
57
68
|
0: "middle",
|
|
58
69
|
1: "top",
|
|
@@ -81,7 +92,7 @@ var alignmentConvert = function (vt = ALIGNMENT_DEFAULT, ht = ALIGNMENT_DEFAULT,
|
|
|
81
92
|
ALIGNMENT_DEFAULT: 0,
|
|
82
93
|
},
|
|
83
94
|
};
|
|
84
|
-
|
|
95
|
+
var alignment = {
|
|
85
96
|
vertical: luckyToExcel.vertical[vt],
|
|
86
97
|
horizontal: luckyToExcel.horizontal[ht],
|
|
87
98
|
wrapText: luckyToExcel.wrapText[tb],
|
|
@@ -1,30 +1,74 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
12
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
+
function step(op) {
|
|
15
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
17
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
18
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
+
switch (op[0]) {
|
|
20
|
+
case 0: case 1: t = op; break;
|
|
21
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
+
default:
|
|
25
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
+
if (t[2]) _.ops.pop();
|
|
30
|
+
_.trys.pop(); continue;
|
|
31
|
+
}
|
|
32
|
+
op = body.call(thisArg, _);
|
|
33
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
+
}
|
|
36
|
+
};
|
|
1
37
|
import ExcelJS from "exceljs";
|
|
2
38
|
import * as fileSaver from "file-saver";
|
|
3
39
|
import { setStyleAndValue } from "./ExcelStyle.js";
|
|
4
40
|
import { setMerge } from "../common/method.js";
|
|
5
41
|
import { setImages } from "./ExcelImage.js";
|
|
6
42
|
import { setBorder } from "./ExcelBorder.js";
|
|
7
|
-
export
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
43
|
+
export function exportSheetExcel(luckysheetRef) {
|
|
44
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
45
|
+
var luckysheet, workbook, buffer, fileData;
|
|
46
|
+
return __generator(this, function (_a) {
|
|
47
|
+
switch (_a.label) {
|
|
48
|
+
case 0:
|
|
49
|
+
luckysheet = luckysheetRef.getAllSheets();
|
|
50
|
+
workbook = new ExcelJS.Workbook();
|
|
51
|
+
// 2.创建表格,第二个参数可以配置创建什么样的工作表
|
|
52
|
+
luckysheet.every(function (table) {
|
|
53
|
+
var _a, _b;
|
|
54
|
+
if (((_a = table === null || table === void 0 ? void 0 : table.data) === null || _a === void 0 ? void 0 : _a.length) === 0)
|
|
55
|
+
return true;
|
|
56
|
+
var worksheet = workbook.addWorksheet(table.name);
|
|
57
|
+
// 3.设置单元格合并,设置单元格边框,设置单元格样式,设置值
|
|
58
|
+
setStyleAndValue(luckysheetRef, table.data, worksheet);
|
|
59
|
+
setMerge((_b = table === null || table === void 0 ? void 0 : table.config) === null || _b === void 0 ? void 0 : _b.merge, worksheet);
|
|
60
|
+
setBorder(table, worksheet);
|
|
61
|
+
setImages(table, worksheet, workbook);
|
|
62
|
+
return true;
|
|
63
|
+
});
|
|
64
|
+
return [4 /*yield*/, workbook.xlsx.writeBuffer()];
|
|
65
|
+
case 1:
|
|
66
|
+
buffer = _a.sent();
|
|
67
|
+
fileData = new Blob([buffer]);
|
|
68
|
+
// 5.保存为文件
|
|
69
|
+
fileSaver.saveAs(fileData, "abc.xlsx");
|
|
70
|
+
return [2 /*return*/];
|
|
71
|
+
}
|
|
72
|
+
});
|
|
24
73
|
});
|
|
25
|
-
// 4.写入 buffer
|
|
26
|
-
const buffer = await workbook.xlsx.writeBuffer();
|
|
27
|
-
const fileData = new Blob([buffer]);
|
|
28
|
-
// 5.保存为文件
|
|
29
|
-
fileSaver.saveAs(fileData, "abc.xlsx");
|
|
30
74
|
}
|
|
@@ -1,9 +1,20 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
1
12
|
//获取图片在单元格的位置
|
|
2
13
|
var getImagePosition = function (num, arr) {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
for (
|
|
14
|
+
var index = 0;
|
|
15
|
+
var minIndex;
|
|
16
|
+
var maxIndex;
|
|
17
|
+
for (var i = 0; i < arr.length; i++) {
|
|
7
18
|
if (num < arr[i]) {
|
|
8
19
|
index = i;
|
|
9
20
|
break;
|
|
@@ -22,29 +33,28 @@ var getImagePosition = function (num, arr) {
|
|
|
22
33
|
minIndex = index - 1;
|
|
23
34
|
maxIndex = index;
|
|
24
35
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
36
|
+
var min = arr[minIndex];
|
|
37
|
+
var max = arr[maxIndex];
|
|
38
|
+
var radio = Math.abs((num - min) / (max - min)) + index;
|
|
28
39
|
return radio;
|
|
29
40
|
};
|
|
30
41
|
var setImages = function (table, worksheet, workbook) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
visibledatarow
|
|
34
|
-
} = localTable;
|
|
42
|
+
var localTable = __assign({}, table);
|
|
43
|
+
var images = localTable.images, visibledatacolumn = localTable.visibledatacolumn, //所有行的位置
|
|
44
|
+
visibledatarow = localTable.visibledatarow;
|
|
35
45
|
if (typeof images != "object")
|
|
36
46
|
return;
|
|
37
|
-
for (
|
|
47
|
+
for (var key in images) {
|
|
38
48
|
// 通过 base64 将图像添加到工作簿
|
|
39
|
-
|
|
49
|
+
var myBase64Image = images[key].src;
|
|
40
50
|
//开始行 开始列 结束行 结束列
|
|
41
|
-
|
|
42
|
-
|
|
51
|
+
var item = images[key];
|
|
52
|
+
var imageId = workbook.addImage({
|
|
43
53
|
base64: myBase64Image,
|
|
44
54
|
extension: "png",
|
|
45
55
|
});
|
|
46
|
-
|
|
47
|
-
|
|
56
|
+
var col_st = getImagePosition(item.default.left, visibledatacolumn);
|
|
57
|
+
var row_st = getImagePosition(item.default.top, visibledatarow);
|
|
48
58
|
//模式1,图片左侧与luckysheet位置一样,像素比例保持不变,但是,右侧位置可能与原图所在单元格不一致
|
|
49
59
|
worksheet.addImage(imageId, {
|
|
50
60
|
tl: { col: col_st, row: row_st },
|
|
@@ -3,21 +3,21 @@ var setStyleAndValue = function (luckysheet, cellArr, worksheet) {
|
|
|
3
3
|
if (!Array.isArray(cellArr))
|
|
4
4
|
return;
|
|
5
5
|
cellArr.forEach(function (row, rowid) {
|
|
6
|
-
|
|
6
|
+
var dbrow = worksheet.getRow(rowid + 1);
|
|
7
7
|
//设置单元格行高,默认乘以1.2倍
|
|
8
8
|
dbrow.height = luckysheet.getRowHeight([rowid])[rowid] / 1.2;
|
|
9
9
|
row.every(function (cell, columnid) {
|
|
10
10
|
if (!cell)
|
|
11
11
|
return true;
|
|
12
12
|
if (rowid == 0) {
|
|
13
|
-
|
|
13
|
+
var dobCol = worksheet.getColumn(columnid + 1);
|
|
14
14
|
//设置单元格列宽除以8
|
|
15
15
|
dobCol.width = luckysheet.getColumnWidth([columnid])[columnid] / 8;
|
|
16
16
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
var fill = fillConvert(cell.bg);
|
|
18
|
+
var font = fontConvert(cell.ff, cell.fc, cell.bl, cell.it, cell.fs, cell.cl, cell.un);
|
|
19
|
+
var alignment = alignmentConvert(cell.vt, cell.ht, cell.tb && parseInt(cell.tb, 10), cell.tr && parseInt(cell.tr, 10));
|
|
20
|
+
var value;
|
|
21
21
|
var v = "";
|
|
22
22
|
// TODO: check and add support for currency, boolean, date format
|
|
23
23
|
if (cell.ct && cell.ct.t == "inlineStr") {
|
|
@@ -41,7 +41,7 @@ var setStyleAndValue = function (luckysheet, cellArr, worksheet) {
|
|
|
41
41
|
else {
|
|
42
42
|
value = v;
|
|
43
43
|
}
|
|
44
|
-
|
|
44
|
+
var target = worksheet.getCell(rowid + 1, columnid + 1);
|
|
45
45
|
target.fill = fill;
|
|
46
46
|
target.font = font;
|
|
47
47
|
target.alignment = alignment;
|
|
@@ -1,28 +1,84 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
1
|
+
var FortuneFileBase = /** @class */ (function () {
|
|
2
|
+
function FortuneFileBase() {
|
|
3
|
+
}
|
|
4
|
+
return FortuneFileBase;
|
|
5
|
+
}());
|
|
6
|
+
export { FortuneFileBase };
|
|
7
|
+
var FortuneSheetBase = /** @class */ (function () {
|
|
8
|
+
function FortuneSheetBase() {
|
|
9
|
+
}
|
|
10
|
+
return FortuneSheetBase;
|
|
11
|
+
}());
|
|
12
|
+
export { FortuneSheetBase };
|
|
13
|
+
var FortuneFileInfo = /** @class */ (function () {
|
|
14
|
+
function FortuneFileInfo() {
|
|
15
|
+
}
|
|
16
|
+
return FortuneFileInfo;
|
|
17
|
+
}());
|
|
18
|
+
export { FortuneFileInfo };
|
|
19
|
+
var FortuneSheetCelldataBase = /** @class */ (function () {
|
|
20
|
+
function FortuneSheetCelldataBase() {
|
|
21
|
+
}
|
|
22
|
+
return FortuneSheetCelldataBase;
|
|
23
|
+
}());
|
|
24
|
+
export { FortuneSheetCelldataBase };
|
|
25
|
+
var FortuneSheetCelldataValue = /** @class */ (function () {
|
|
26
|
+
function FortuneSheetCelldataValue() {
|
|
27
|
+
}
|
|
28
|
+
return FortuneSheetCelldataValue;
|
|
29
|
+
}());
|
|
30
|
+
export { FortuneSheetCelldataValue };
|
|
31
|
+
var FortuneSheetCellFormat = /** @class */ (function () {
|
|
32
|
+
function FortuneSheetCellFormat() {
|
|
33
|
+
}
|
|
34
|
+
return FortuneSheetCellFormat;
|
|
35
|
+
}());
|
|
36
|
+
export { FortuneSheetCellFormat };
|
|
37
|
+
var FortuneInlineString = /** @class */ (function () {
|
|
38
|
+
function FortuneInlineString() {
|
|
39
|
+
}
|
|
40
|
+
return FortuneInlineString;
|
|
41
|
+
}());
|
|
42
|
+
export { FortuneInlineString };
|
|
43
|
+
var FortuneConfig = /** @class */ (function () {
|
|
44
|
+
function FortuneConfig() {
|
|
45
|
+
}
|
|
46
|
+
return FortuneConfig;
|
|
47
|
+
}());
|
|
48
|
+
export { FortuneConfig };
|
|
49
|
+
var FortuneSheetborderInfoCellForImp = /** @class */ (function () {
|
|
50
|
+
function FortuneSheetborderInfoCellForImp() {
|
|
51
|
+
}
|
|
52
|
+
return FortuneSheetborderInfoCellForImp;
|
|
53
|
+
}());
|
|
54
|
+
export { FortuneSheetborderInfoCellForImp };
|
|
55
|
+
var FortuneSheetborderInfoCellValue = /** @class */ (function () {
|
|
56
|
+
function FortuneSheetborderInfoCellValue() {
|
|
57
|
+
}
|
|
58
|
+
return FortuneSheetborderInfoCellValue;
|
|
59
|
+
}());
|
|
60
|
+
export { FortuneSheetborderInfoCellValue };
|
|
61
|
+
var FortuneSheetborderInfoCellValueStyle = /** @class */ (function () {
|
|
62
|
+
function FortuneSheetborderInfoCellValueStyle() {
|
|
63
|
+
}
|
|
64
|
+
return FortuneSheetborderInfoCellValueStyle;
|
|
65
|
+
}());
|
|
66
|
+
export { FortuneSheetborderInfoCellValueStyle };
|
|
67
|
+
var FortuneSheetConfigMerge = /** @class */ (function () {
|
|
68
|
+
function FortuneSheetConfigMerge() {
|
|
69
|
+
}
|
|
70
|
+
return FortuneSheetConfigMerge;
|
|
71
|
+
}());
|
|
72
|
+
export { FortuneSheetConfigMerge };
|
|
73
|
+
var FortunesheetCalcChain = /** @class */ (function () {
|
|
74
|
+
function FortunesheetCalcChain() {
|
|
75
|
+
}
|
|
76
|
+
return FortunesheetCalcChain;
|
|
77
|
+
}());
|
|
78
|
+
export { FortunesheetCalcChain };
|
|
79
|
+
var FortuneImageBase = /** @class */ (function () {
|
|
80
|
+
function FortuneImageBase() {
|
|
81
|
+
}
|
|
82
|
+
return FortuneImageBase;
|
|
83
|
+
}());
|
|
84
|
+
export { FortuneImageBase };
|