@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
|
@@ -1,104 +1,121 @@
|
|
|
1
|
+
var __extends = (this && this.__extends) || (function () {
|
|
2
|
+
var extendStatics = function (d, b) {
|
|
3
|
+
extendStatics = Object.setPrototypeOf ||
|
|
4
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
5
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
6
|
+
return extendStatics(d, b);
|
|
7
|
+
};
|
|
8
|
+
return function (d, b) {
|
|
9
|
+
if (typeof b !== "function" && b !== null)
|
|
10
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
11
|
+
extendStatics(d, b);
|
|
12
|
+
function __() { this.constructor = d; }
|
|
13
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
14
|
+
};
|
|
15
|
+
})();
|
|
1
16
|
import { FortuneSheetCelldata } from "./FortuneCell.js";
|
|
2
17
|
import { getXmlAttibute, getColumnWidthPixel, fromulaRef, getRowHeightPixel, getcellrange, generateRandomIndex, getPxByEMUs, getMultiSequenceToNum, getTransR1C1ToSequence, getPeelOffX14, getMultiFormulaValue, } from "../common/method.js";
|
|
3
18
|
import { COMMON_TYPE2, DATA_VERIFICATION_MAP, DATA_VERIFICATION_TYPE2_MAP, worksheetFilePath, } from "../common/constant.js";
|
|
4
19
|
import { getColor } from "./ReadXml.js";
|
|
5
20
|
import { FortuneSheetBase, FortuneConfig, FortunesheetCalcChain, FortuneSheetConfigMerge, } from "./FortuneBase.js";
|
|
6
21
|
import dayjs from "dayjs";
|
|
7
|
-
|
|
8
|
-
|
|
22
|
+
var FortuneSheet = /** @class */ (function (_super) {
|
|
23
|
+
__extends(FortuneSheet, _super);
|
|
24
|
+
function FortuneSheet(sheetName, sheetId, sheetOrder, isInitialCell, allFileOption) {
|
|
25
|
+
if (isInitialCell === void 0) { isInitialCell = false; }
|
|
9
26
|
//Private
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
27
|
+
var _this = _super.call(this) || this;
|
|
28
|
+
_this.isInitialCell = isInitialCell;
|
|
29
|
+
_this.readXml = allFileOption.readXml;
|
|
30
|
+
_this.sheetFile = allFileOption.sheetFile;
|
|
31
|
+
_this.styles = allFileOption.styles;
|
|
32
|
+
_this.sharedStrings = allFileOption.sharedStrings;
|
|
33
|
+
_this.calcChainEles = allFileOption.calcChain;
|
|
34
|
+
_this.sheetList = allFileOption.sheetList;
|
|
35
|
+
_this.imageList = allFileOption.imageList;
|
|
36
|
+
_this.hide = allFileOption.hide;
|
|
20
37
|
//Output
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
38
|
+
_this.name = sheetName;
|
|
39
|
+
_this.id = sheetId;
|
|
40
|
+
_this.order = sheetOrder.toString();
|
|
41
|
+
_this.config = new FortuneConfig();
|
|
42
|
+
_this.celldata = [];
|
|
43
|
+
_this.mergeCells = _this.readXml.getElementsByTagName("mergeCells/mergeCell", _this.sheetFile);
|
|
44
|
+
var clrScheme = _this.styles["clrScheme"];
|
|
45
|
+
var sheetView = _this.readXml.getElementsByTagName("sheetViews/sheetView", _this.sheetFile);
|
|
46
|
+
var showGridLines = "1", tabSelected = "0", zoomScale = "100", activeCell = "A1";
|
|
30
47
|
if (sheetView.length > 0) {
|
|
31
|
-
|
|
48
|
+
var attrList = sheetView[0].attributeList;
|
|
32
49
|
showGridLines = getXmlAttibute(attrList, "showGridLines", "1");
|
|
33
50
|
tabSelected = getXmlAttibute(attrList, "tabSelected", "0");
|
|
34
51
|
zoomScale = getXmlAttibute(attrList, "zoomScale", "100");
|
|
35
52
|
// let colorId = getXmlAttibute(attrList, "colorId", "0");
|
|
36
|
-
|
|
53
|
+
var selections = sheetView[0].getInnerElements("selection");
|
|
37
54
|
if (selections != null && selections.length > 0) {
|
|
38
55
|
activeCell = getXmlAttibute(selections[0].attributeList, "activeCell", "A1");
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
56
|
+
var range = getcellrange(activeCell, _this.sheetList, sheetId);
|
|
57
|
+
_this.luckysheet_select_save = [];
|
|
58
|
+
_this.luckysheet_select_save.push(range);
|
|
42
59
|
}
|
|
43
60
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
61
|
+
_this.showGridLines = showGridLines;
|
|
62
|
+
_this.status = tabSelected;
|
|
63
|
+
_this.zoomRatio = parseInt(zoomScale) / 100;
|
|
64
|
+
var tabColors = _this.readXml.getElementsByTagName("sheetPr/tabColor", _this.sheetFile);
|
|
48
65
|
if (tabColors != null && tabColors.length > 0) {
|
|
49
|
-
|
|
66
|
+
var tabColor = tabColors[0], attrList = tabColor.attributeList;
|
|
50
67
|
// if(attrList.rgb!=null){
|
|
51
|
-
|
|
52
|
-
|
|
68
|
+
var tc = getColor(tabColor, _this.styles, "b");
|
|
69
|
+
_this.color = tc;
|
|
53
70
|
// }
|
|
54
71
|
}
|
|
55
|
-
|
|
56
|
-
|
|
72
|
+
var sheetFormatPr = _this.readXml.getElementsByTagName("sheetFormatPr", _this.sheetFile);
|
|
73
|
+
var defaultColWidth, defaultRowHeight;
|
|
57
74
|
if (sheetFormatPr.length > 0) {
|
|
58
|
-
|
|
75
|
+
var attrList = sheetFormatPr[0].attributeList;
|
|
59
76
|
defaultColWidth = getXmlAttibute(attrList, "defaultColWidth", "9.21");
|
|
60
77
|
defaultRowHeight = getXmlAttibute(attrList, "defaultRowHeight", "19");
|
|
61
78
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
if (
|
|
67
|
-
|
|
79
|
+
_this.defaultColWidth = getColumnWidthPixel(parseFloat(defaultColWidth));
|
|
80
|
+
_this.defaultRowHeight = getRowHeightPixel(parseFloat(defaultRowHeight));
|
|
81
|
+
_this.generateConfigColumnLenAndHidden();
|
|
82
|
+
var cellOtherInfo = _this.generateConfigRowLenAndHiddenAddCell();
|
|
83
|
+
if (_this.calcChain == null) {
|
|
84
|
+
_this.calcChain = [];
|
|
68
85
|
}
|
|
69
|
-
|
|
70
|
-
for (
|
|
71
|
-
|
|
86
|
+
var formulaListExist = {};
|
|
87
|
+
for (var c = 0; c < _this.calcChainEles.length; c++) {
|
|
88
|
+
var calcChainEle = _this.calcChainEles[c], attrList = calcChainEle.attributeList;
|
|
72
89
|
if (attrList.i != sheetId) {
|
|
73
90
|
continue;
|
|
74
91
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
92
|
+
var r = attrList.r, i = attrList.i, l = attrList.l, s = attrList.s, a = attrList.a, t = attrList.t;
|
|
93
|
+
var range = getcellrange(r);
|
|
94
|
+
var chain = new FortunesheetCalcChain();
|
|
78
95
|
chain.r = range.row[0];
|
|
79
96
|
chain.c = range.column[0];
|
|
80
|
-
chain.id =
|
|
81
|
-
|
|
97
|
+
chain.id = _this.id;
|
|
98
|
+
_this.calcChain.push(chain);
|
|
82
99
|
formulaListExist["r" + r + "c" + c] = null;
|
|
83
100
|
}
|
|
84
|
-
if (
|
|
85
|
-
for (
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
101
|
+
if (_this.formulaRefList != null) {
|
|
102
|
+
for (var key in _this.formulaRefList) {
|
|
103
|
+
var funclist = _this.formulaRefList[key];
|
|
104
|
+
var mainFunc = funclist["mainRef"], mainCellValue = mainFunc.cellValue;
|
|
105
|
+
var formulaTxt = mainFunc.fv;
|
|
106
|
+
var mainR = mainCellValue.r, mainC = mainCellValue.c;
|
|
90
107
|
// let refRange = getcellrange(ref);
|
|
91
|
-
for (
|
|
92
|
-
if (
|
|
108
|
+
for (var name_1 in funclist) {
|
|
109
|
+
if (name_1 == "mainRef") {
|
|
93
110
|
continue;
|
|
94
111
|
}
|
|
95
|
-
|
|
112
|
+
var funcValue = funclist[name_1], cellValue = funcValue.cellValue;
|
|
96
113
|
if (cellValue == null) {
|
|
97
114
|
continue;
|
|
98
115
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
116
|
+
var r = cellValue.r, c = cellValue.c;
|
|
117
|
+
var func = formulaTxt;
|
|
118
|
+
var offsetRow = r - mainR, offsetCol = c - mainC;
|
|
102
119
|
if (offsetRow > 0) {
|
|
103
120
|
func = "=" + fromulaRef.functionCopy(func, "down", offsetRow);
|
|
104
121
|
}
|
|
@@ -116,66 +133,66 @@ export class FortuneSheet extends FortuneSheetBase {
|
|
|
116
133
|
// console.log(offsetRow, offsetCol, func);
|
|
117
134
|
cellValue.v.f = func;
|
|
118
135
|
//添加共享公式链
|
|
119
|
-
|
|
136
|
+
var chain = new FortunesheetCalcChain();
|
|
120
137
|
chain.r = cellValue.r;
|
|
121
138
|
chain.c = cellValue.c;
|
|
122
|
-
chain.id =
|
|
123
|
-
|
|
139
|
+
chain.id = _this.id;
|
|
140
|
+
_this.calcChain.push(chain);
|
|
124
141
|
}
|
|
125
142
|
}
|
|
126
143
|
}
|
|
127
144
|
//There may be formulas that do not appear in calcChain
|
|
128
|
-
for (
|
|
145
|
+
for (var key in cellOtherInfo.formulaList) {
|
|
129
146
|
if (!(key in formulaListExist)) {
|
|
130
|
-
|
|
131
|
-
|
|
147
|
+
var formulaListItem = cellOtherInfo.formulaList[key];
|
|
148
|
+
var chain = new FortunesheetCalcChain();
|
|
132
149
|
chain.r = formulaListItem.r;
|
|
133
150
|
chain.c = formulaListItem.c;
|
|
134
|
-
chain.id =
|
|
135
|
-
|
|
151
|
+
chain.id = _this.id;
|
|
152
|
+
_this.calcChain.push(chain);
|
|
136
153
|
}
|
|
137
154
|
}
|
|
138
155
|
// dataVerification config
|
|
139
|
-
|
|
156
|
+
_this.dataVerification = _this.generateConfigDataValidations();
|
|
140
157
|
// hyperlink config
|
|
141
|
-
|
|
158
|
+
_this.hyperlink = _this.generateConfigHyperlinks();
|
|
142
159
|
// sheet hide
|
|
143
|
-
|
|
144
|
-
if (
|
|
145
|
-
for (
|
|
146
|
-
|
|
147
|
-
|
|
160
|
+
_this.hide = _this.hide;
|
|
161
|
+
if (_this.mergeCells != null) {
|
|
162
|
+
for (var i = 0; i < _this.mergeCells.length; i++) {
|
|
163
|
+
var merge = _this.mergeCells[i], attrList = merge.attributeList;
|
|
164
|
+
var ref = attrList.ref;
|
|
148
165
|
if (ref == null) {
|
|
149
166
|
continue;
|
|
150
167
|
}
|
|
151
|
-
|
|
152
|
-
|
|
168
|
+
var range = getcellrange(ref, _this.sheetList, sheetId);
|
|
169
|
+
var mergeValue = new FortuneSheetConfigMerge();
|
|
153
170
|
mergeValue.r = range.row[0];
|
|
154
171
|
mergeValue.c = range.column[0];
|
|
155
172
|
mergeValue.rs = range.row[1] - range.row[0] + 1;
|
|
156
173
|
mergeValue.cs = range.column[1] - range.column[0] + 1;
|
|
157
|
-
if (
|
|
158
|
-
|
|
174
|
+
if (_this.config.merge == null) {
|
|
175
|
+
_this.config.merge = {};
|
|
159
176
|
}
|
|
160
|
-
|
|
177
|
+
_this.config.merge[range.row[0] + "_" + range.column[0]] = mergeValue;
|
|
161
178
|
}
|
|
162
179
|
}
|
|
163
|
-
|
|
180
|
+
var drawingFile = allFileOption.drawingFile, drawingRelsFile = allFileOption.drawingRelsFile;
|
|
164
181
|
if (drawingFile != null && drawingRelsFile != null) {
|
|
165
|
-
|
|
182
|
+
var twoCellAnchors = _this.readXml.getElementsByTagName("xdr:twoCellAnchor", drawingFile);
|
|
166
183
|
if (twoCellAnchors != null && twoCellAnchors.length > 0) {
|
|
167
|
-
for (
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
184
|
+
for (var i = 0; i < twoCellAnchors.length; i++) {
|
|
185
|
+
var twoCellAnchor = twoCellAnchors[i];
|
|
186
|
+
var editAs = getXmlAttibute(twoCellAnchor.attributeList, "editAs", "twoCell");
|
|
187
|
+
var xdrFroms = twoCellAnchor.getInnerElements("xdr:from"), xdrTos = twoCellAnchor.getInnerElements("xdr:to");
|
|
188
|
+
var xdr_blipfills = twoCellAnchor.getInnerElements("a:blip");
|
|
172
189
|
if (xdrFroms != null &&
|
|
173
190
|
xdr_blipfills != null &&
|
|
174
191
|
xdrFroms.length > 0 &&
|
|
175
192
|
xdr_blipfills.length > 0) {
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
193
|
+
var xdrFrom = xdrFroms[0], xdrTo = xdrTos[0], xdr_blipfill = xdr_blipfills[0];
|
|
194
|
+
var rembed = getXmlAttibute(xdr_blipfill.attributeList, "r:embed", null);
|
|
195
|
+
var imageObject = _this.getBase64ByRid(rembed, drawingRelsFile);
|
|
179
196
|
// let aoff = xdr_xfrm.getInnerElements("a:off"), aext = xdr_xfrm.getInnerElements("a:ext");
|
|
180
197
|
// if(aoff!=null && aext!=null && aoff.length>0 && aext.length>0){
|
|
181
198
|
// let aoffAttribute = aoff[0].attributeList, aextAttribute = aext[0].attributeList;
|
|
@@ -186,16 +203,16 @@ export class FortuneSheet extends FortuneSheetBase {
|
|
|
186
203
|
// if(x!=null && y!=null && cx!=null && cy!=null && imageObject !=null){
|
|
187
204
|
// let x_n = getPxByEMUs(parseInt(x), "c"),y_n = getPxByEMUs(parseInt(y));
|
|
188
205
|
// let cx_n = getPxByEMUs(parseInt(cx), "c"),cy_n = getPxByEMUs(parseInt(cy));
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
imageObject.fromCol =
|
|
192
|
-
imageObject.fromColOff = getPxByEMUs(
|
|
193
|
-
imageObject.fromRow =
|
|
194
|
-
imageObject.fromRowOff = getPxByEMUs(
|
|
195
|
-
imageObject.toCol =
|
|
196
|
-
imageObject.toColOff = getPxByEMUs(
|
|
197
|
-
imageObject.toRow =
|
|
198
|
-
imageObject.toRowOff = getPxByEMUs(
|
|
206
|
+
var x_n = 0, y_n = 0;
|
|
207
|
+
var cx_n = 0, cy_n = 0;
|
|
208
|
+
imageObject.fromCol = _this.getXdrValue(xdrFrom.getInnerElements("xdr:col"));
|
|
209
|
+
imageObject.fromColOff = getPxByEMUs(_this.getXdrValue(xdrFrom.getInnerElements("xdr:colOff")));
|
|
210
|
+
imageObject.fromRow = _this.getXdrValue(xdrFrom.getInnerElements("xdr:row"));
|
|
211
|
+
imageObject.fromRowOff = getPxByEMUs(_this.getXdrValue(xdrFrom.getInnerElements("xdr:rowOff")));
|
|
212
|
+
imageObject.toCol = _this.getXdrValue(xdrTo.getInnerElements("xdr:col"));
|
|
213
|
+
imageObject.toColOff = getPxByEMUs(_this.getXdrValue(xdrTo.getInnerElements("xdr:colOff")));
|
|
214
|
+
imageObject.toRow = _this.getXdrValue(xdrTo.getInnerElements("xdr:row"));
|
|
215
|
+
imageObject.toRowOff = getPxByEMUs(_this.getXdrValue(xdrTo.getInnerElements("xdr:rowOff")));
|
|
199
216
|
imageObject.originWidth = cx_n;
|
|
200
217
|
imageObject.originHeight = cy_n;
|
|
201
218
|
if (editAs == "absolute") {
|
|
@@ -210,79 +227,80 @@ export class FortuneSheet extends FortuneSheetBase {
|
|
|
210
227
|
imageObject.isFixedPos = false;
|
|
211
228
|
imageObject.fixedLeft = 0;
|
|
212
229
|
imageObject.fixedTop = 0;
|
|
213
|
-
|
|
230
|
+
var imageBorder = {
|
|
214
231
|
color: "#000",
|
|
215
232
|
radius: 0,
|
|
216
233
|
style: "solid",
|
|
217
234
|
width: 0,
|
|
218
235
|
};
|
|
219
236
|
imageObject.border = imageBorder;
|
|
220
|
-
|
|
237
|
+
var imageCrop = {
|
|
221
238
|
height: cy_n,
|
|
222
239
|
offsetLeft: 0,
|
|
223
240
|
offsetTop: 0,
|
|
224
241
|
width: cx_n,
|
|
225
242
|
};
|
|
226
243
|
imageObject.crop = imageCrop;
|
|
227
|
-
|
|
244
|
+
var imageDefault = {
|
|
228
245
|
height: cy_n,
|
|
229
246
|
left: x_n,
|
|
230
247
|
top: y_n,
|
|
231
248
|
width: cx_n,
|
|
232
249
|
};
|
|
233
250
|
imageObject.default = imageDefault;
|
|
234
|
-
if (
|
|
235
|
-
|
|
251
|
+
if (_this.images == null) {
|
|
252
|
+
_this.images = {};
|
|
236
253
|
}
|
|
237
|
-
|
|
254
|
+
_this.images[generateRandomIndex("image")] = imageObject;
|
|
238
255
|
// }
|
|
239
256
|
// }
|
|
240
257
|
}
|
|
241
258
|
}
|
|
242
259
|
}
|
|
243
260
|
}
|
|
261
|
+
return _this;
|
|
244
262
|
}
|
|
245
|
-
getXdrValue(ele) {
|
|
263
|
+
FortuneSheet.prototype.getXdrValue = function (ele) {
|
|
246
264
|
if (ele == null || ele.length == 0) {
|
|
247
265
|
return null;
|
|
248
266
|
}
|
|
249
267
|
return parseInt(ele[0].value);
|
|
250
|
-
}
|
|
251
|
-
getBase64ByRid(rid, drawingRelsFile) {
|
|
252
|
-
|
|
268
|
+
};
|
|
269
|
+
FortuneSheet.prototype.getBase64ByRid = function (rid, drawingRelsFile) {
|
|
270
|
+
var Relationships = this.readXml.getElementsByTagName("Relationships/Relationship", drawingRelsFile);
|
|
253
271
|
if (Relationships != null && Relationships.length > 0) {
|
|
254
|
-
for (
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
272
|
+
for (var i = 0; i < Relationships.length; i++) {
|
|
273
|
+
var Relationship = Relationships[i];
|
|
274
|
+
var attrList = Relationship.attributeList;
|
|
275
|
+
var Id = getXmlAttibute(attrList, "Id", null);
|
|
276
|
+
var src = getXmlAttibute(attrList, "Target", null);
|
|
259
277
|
if (Id == rid) {
|
|
260
278
|
src = src.replace(/\.\.\//g, "");
|
|
261
279
|
src = "xl/" + src;
|
|
262
|
-
|
|
280
|
+
var imgage = this.imageList.getImageByName(src);
|
|
263
281
|
return imgage;
|
|
264
282
|
}
|
|
265
283
|
}
|
|
266
284
|
}
|
|
267
285
|
return null;
|
|
268
|
-
}
|
|
286
|
+
};
|
|
269
287
|
/**
|
|
270
288
|
* @desc This will convert cols/col to fortunesheet config of column'width
|
|
271
289
|
*/
|
|
272
|
-
generateConfigColumnLenAndHidden() {
|
|
273
|
-
|
|
274
|
-
for (
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
290
|
+
FortuneSheet.prototype.generateConfigColumnLenAndHidden = function () {
|
|
291
|
+
var cols = this.readXml.getElementsByTagName("cols/col", this.sheetFile);
|
|
292
|
+
for (var i = 0; i < cols.length; i++) {
|
|
293
|
+
var col = cols[i], attrList = col.attributeList;
|
|
294
|
+
var min = getXmlAttibute(attrList, "min", null);
|
|
295
|
+
var max = getXmlAttibute(attrList, "max", null);
|
|
296
|
+
var width = getXmlAttibute(attrList, "width", null);
|
|
297
|
+
var hidden = getXmlAttibute(attrList, "hidden", null);
|
|
298
|
+
var customWidth = getXmlAttibute(attrList, "customWidth", null);
|
|
281
299
|
if (min == null || max == null) {
|
|
282
300
|
continue;
|
|
283
301
|
}
|
|
284
|
-
|
|
285
|
-
for (
|
|
302
|
+
var minNum = parseInt(min) - 1, maxNum = parseInt(max) - 1, widthNum = parseFloat(width);
|
|
303
|
+
for (var m = minNum; m <= maxNum; m++) {
|
|
286
304
|
if (width != null) {
|
|
287
305
|
if (this.config.columnlen == null) {
|
|
288
306
|
this.config.columnlen = {};
|
|
@@ -306,27 +324,27 @@ export class FortuneSheet extends FortuneSheetBase {
|
|
|
306
324
|
}
|
|
307
325
|
}
|
|
308
326
|
}
|
|
309
|
-
}
|
|
327
|
+
};
|
|
310
328
|
/**
|
|
311
329
|
* @desc This will convert cols/col to fortunesheet config of column'width
|
|
312
330
|
*/
|
|
313
|
-
generateConfigRowLenAndHiddenAddCell() {
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
331
|
+
FortuneSheet.prototype.generateConfigRowLenAndHiddenAddCell = function () {
|
|
332
|
+
var rows = this.readXml.getElementsByTagName("sheetData/row", this.sheetFile);
|
|
333
|
+
var cellOtherInfo = {};
|
|
334
|
+
var formulaList = {};
|
|
317
335
|
cellOtherInfo.formulaList = formulaList;
|
|
318
|
-
for (
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
336
|
+
for (var i = 0; i < rows.length; i++) {
|
|
337
|
+
var row = rows[i], attrList = row.attributeList;
|
|
338
|
+
var rowNo = getXmlAttibute(attrList, "r", null);
|
|
339
|
+
var height = getXmlAttibute(attrList, "ht", null);
|
|
340
|
+
var hidden = getXmlAttibute(attrList, "hidden", null);
|
|
341
|
+
var customHeight = getXmlAttibute(attrList, "customHeight", null);
|
|
324
342
|
if (rowNo == null) {
|
|
325
343
|
continue;
|
|
326
344
|
}
|
|
327
|
-
|
|
345
|
+
var rowNoNum = parseInt(rowNo) - 1;
|
|
328
346
|
if (height != null) {
|
|
329
|
-
|
|
347
|
+
var heightNum = parseFloat(height);
|
|
330
348
|
if (this.config.rowlen == null) {
|
|
331
349
|
this.config.rowlen = {};
|
|
332
350
|
}
|
|
@@ -348,10 +366,10 @@ export class FortuneSheet extends FortuneSheetBase {
|
|
|
348
366
|
this.config.customHeight[rowNoNum] = 1;
|
|
349
367
|
}
|
|
350
368
|
if (this.isInitialCell) {
|
|
351
|
-
|
|
352
|
-
for (
|
|
353
|
-
|
|
354
|
-
|
|
369
|
+
var cells = row.getInnerElements("c");
|
|
370
|
+
for (var key in cells) {
|
|
371
|
+
var cell = cells[key];
|
|
372
|
+
var cellValue = new FortuneSheetCelldata(cell, this.styles, this.sharedStrings, this.mergeCells, this.sheetFile, this.readXml);
|
|
355
373
|
if (cellValue._borderObject != null) {
|
|
356
374
|
if (this.config.borderInfo == null) {
|
|
357
375
|
this.config.borderInfo = [];
|
|
@@ -414,11 +432,11 @@ export class FortuneSheet extends FortuneSheetBase {
|
|
|
414
432
|
if (this.formulaRefList[cellValue._formulaSi] == null) {
|
|
415
433
|
this.formulaRefList[cellValue._formulaSi] = {};
|
|
416
434
|
}
|
|
417
|
-
|
|
435
|
+
var fv = void 0;
|
|
418
436
|
if (cellValue.v != null) {
|
|
419
437
|
fv = cellValue.v.f;
|
|
420
438
|
}
|
|
421
|
-
|
|
439
|
+
var refValue = {
|
|
422
440
|
t: cellValue._formulaType,
|
|
423
441
|
ref: cellValue._fomulaRef,
|
|
424
442
|
si: cellValue._formulaSi,
|
|
@@ -436,7 +454,7 @@ export class FortuneSheet extends FortuneSheetBase {
|
|
|
436
454
|
//There may be formulas that do not appear in calcChain
|
|
437
455
|
if (cellValue.v != null &&
|
|
438
456
|
cellValue.v.f != null) {
|
|
439
|
-
|
|
457
|
+
var formulaCell = {
|
|
440
458
|
r: cellValue.r,
|
|
441
459
|
c: cellValue.c,
|
|
442
460
|
};
|
|
@@ -448,32 +466,32 @@ export class FortuneSheet extends FortuneSheetBase {
|
|
|
448
466
|
}
|
|
449
467
|
}
|
|
450
468
|
return cellOtherInfo;
|
|
451
|
-
}
|
|
469
|
+
};
|
|
452
470
|
/**
|
|
453
471
|
* fortunesheet config of dataValidations
|
|
454
472
|
*
|
|
455
473
|
* @returns {IfortunesheetDataVerification} - dataValidations config
|
|
456
474
|
*/
|
|
457
|
-
generateConfigDataValidations() {
|
|
458
|
-
|
|
459
|
-
|
|
475
|
+
FortuneSheet.prototype.generateConfigDataValidations = function () {
|
|
476
|
+
var rows = this.readXml.getElementsByTagName("dataValidations/dataValidation", this.sheetFile);
|
|
477
|
+
var extLst = this.readXml.getElementsByTagName("extLst/ext/x14:dataValidations/x14:dataValidation", this.sheetFile) || [];
|
|
460
478
|
rows = rows.concat(extLst);
|
|
461
|
-
|
|
462
|
-
for (
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
479
|
+
var dataVerification = {};
|
|
480
|
+
for (var i = 0; i < rows.length; i++) {
|
|
481
|
+
var row = rows[i];
|
|
482
|
+
var attrList = row.attributeList;
|
|
483
|
+
var formulaValue = row.value;
|
|
484
|
+
var type = getXmlAttibute(attrList, "type", null);
|
|
467
485
|
if (!type) {
|
|
468
486
|
continue;
|
|
469
487
|
}
|
|
470
|
-
|
|
471
|
-
|
|
488
|
+
var operator = "", sqref = "", sqrefIndexArr = [], valueArr = [];
|
|
489
|
+
var _prohibitInput = getXmlAttibute(attrList, "allowBlank", null) !== "1" ? false : true;
|
|
472
490
|
// x14 processing
|
|
473
|
-
|
|
491
|
+
var formulaReg = new RegExp(/<x14:formula1>|<xm:sqref>/g);
|
|
474
492
|
if (formulaReg.test(formulaValue) && (extLst === null || extLst === void 0 ? void 0 : extLst.length) >= 0) {
|
|
475
493
|
operator = getXmlAttibute(attrList, "operator", null);
|
|
476
|
-
|
|
494
|
+
var peelOffData = getPeelOffX14(formulaValue);
|
|
477
495
|
sqref = peelOffData === null || peelOffData === void 0 ? void 0 : peelOffData.sqref;
|
|
478
496
|
sqrefIndexArr = getMultiSequenceToNum(sqref);
|
|
479
497
|
valueArr = getMultiFormulaValue(peelOffData === null || peelOffData === void 0 ? void 0 : peelOffData.formula);
|
|
@@ -484,13 +502,13 @@ export class FortuneSheet extends FortuneSheetBase {
|
|
|
484
502
|
sqrefIndexArr = getMultiSequenceToNum(sqref);
|
|
485
503
|
valueArr = getMultiFormulaValue(formulaValue);
|
|
486
504
|
}
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
505
|
+
var _type = DATA_VERIFICATION_MAP[type];
|
|
506
|
+
var _type2 = null;
|
|
507
|
+
var _value1 = (valueArr === null || valueArr === void 0 ? void 0 : valueArr.length) >= 1 ? valueArr[0] : "";
|
|
508
|
+
var _value2 = (valueArr === null || valueArr === void 0 ? void 0 : valueArr.length) === 2 ? valueArr[1] : "";
|
|
509
|
+
var _hint = getXmlAttibute(attrList, "prompt", null);
|
|
510
|
+
var _hintShow = _hint ? true : false;
|
|
511
|
+
var matchType = COMMON_TYPE2.includes(_type) ? "common" : _type;
|
|
494
512
|
_type2 = operator
|
|
495
513
|
? DATA_VERIFICATION_TYPE2_MAP[matchType][operator]
|
|
496
514
|
: "bw";
|
|
@@ -503,7 +521,7 @@ export class FortuneSheet extends FortuneSheetBase {
|
|
|
503
521
|
}
|
|
504
522
|
// date processing
|
|
505
523
|
if (_type === "date") {
|
|
506
|
-
|
|
524
|
+
var D1900 = new Date(1899, 11, 30, 0, 0, 0);
|
|
507
525
|
_value1 = dayjs(D1900)
|
|
508
526
|
.clone()
|
|
509
527
|
.add(Number(_value1), "day")
|
|
@@ -518,7 +536,8 @@ export class FortuneSheet extends FortuneSheetBase {
|
|
|
518
536
|
_type2 = null;
|
|
519
537
|
}
|
|
520
538
|
// dynamically add dataVerifications
|
|
521
|
-
for (
|
|
539
|
+
for (var _i = 0, sqrefIndexArr_1 = sqrefIndexArr; _i < sqrefIndexArr_1.length; _i++) {
|
|
540
|
+
var ref = sqrefIndexArr_1[_i];
|
|
522
541
|
dataVerification[ref] = {
|
|
523
542
|
type: _type,
|
|
524
543
|
type2: _type2,
|
|
@@ -533,49 +552,56 @@ export class FortuneSheet extends FortuneSheetBase {
|
|
|
533
552
|
}
|
|
534
553
|
}
|
|
535
554
|
return dataVerification;
|
|
536
|
-
}
|
|
555
|
+
};
|
|
537
556
|
/**
|
|
538
557
|
* fortunesheet config of hyperlink
|
|
539
558
|
*
|
|
540
559
|
* @returns {IfortunesheetHyperlink} - hyperlink config
|
|
541
560
|
*/
|
|
542
|
-
generateConfigHyperlinks() {
|
|
561
|
+
FortuneSheet.prototype.generateConfigHyperlinks = function () {
|
|
543
562
|
var _a;
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
563
|
+
var rows = this.readXml.getElementsByTagName("hyperlinks/hyperlink", this.sheetFile);
|
|
564
|
+
var hyperlink = {};
|
|
565
|
+
var _loop_1 = function (i) {
|
|
566
|
+
var row = rows[i];
|
|
567
|
+
var attrList = row.attributeList;
|
|
568
|
+
var ref = getXmlAttibute(attrList, "ref", null), refArr = getMultiSequenceToNum(ref), _display = getXmlAttibute(attrList, "display", null), _address = getXmlAttibute(attrList, "location", null), _tooltip = getXmlAttibute(attrList, "tooltip", null);
|
|
569
|
+
var _type = _address
|
|
551
570
|
? "internal"
|
|
552
571
|
: "external";
|
|
553
572
|
// external hyperlink
|
|
554
573
|
if (!_address) {
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
574
|
+
var rid_1 = attrList["r:id"];
|
|
575
|
+
var sheetFile = this_1.sheetFile;
|
|
576
|
+
var relationshipList = this_1.readXml.getElementsByTagName("Relationships/Relationship", "xl/worksheets/_rels/".concat(sheetFile.replace(worksheetFilePath, ""), ".rels"));
|
|
577
|
+
var findRid = relationshipList === null || relationshipList === void 0 ? void 0 : relationshipList.find(function (e) { return e.attributeList["Id"] === rid_1; });
|
|
559
578
|
if (findRid) {
|
|
560
579
|
_address = findRid.attributeList["Target"];
|
|
561
580
|
_type = (_a = findRid.attributeList["TargetMode"]) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase();
|
|
562
581
|
}
|
|
563
582
|
}
|
|
564
583
|
// match R1C1
|
|
565
|
-
|
|
584
|
+
var addressReg = new RegExp(/^.*!R([\d$])+C([\d$])*$/g);
|
|
566
585
|
if (addressReg.test(_address)) {
|
|
567
586
|
_address = getTransR1C1ToSequence(_address);
|
|
568
587
|
}
|
|
569
588
|
// dynamically add hyperlinks
|
|
570
|
-
for (
|
|
571
|
-
|
|
589
|
+
for (var _i = 0, refArr_1 = refArr; _i < refArr_1.length; _i++) {
|
|
590
|
+
var ref_1 = refArr_1[_i];
|
|
591
|
+
hyperlink[ref_1] = {
|
|
572
592
|
linkAddress: _address,
|
|
573
593
|
linkTooltip: _tooltip || "",
|
|
574
594
|
linkType: _type,
|
|
575
595
|
display: _display || "",
|
|
576
596
|
};
|
|
577
597
|
}
|
|
598
|
+
};
|
|
599
|
+
var this_1 = this;
|
|
600
|
+
for (var i = 0; i < rows.length; i++) {
|
|
601
|
+
_loop_1(i);
|
|
578
602
|
}
|
|
579
603
|
return hyperlink;
|
|
580
|
-
}
|
|
581
|
-
|
|
604
|
+
};
|
|
605
|
+
return FortuneSheet;
|
|
606
|
+
}(FortuneSheetBase));
|
|
607
|
+
export { FortuneSheet };
|