UNPKG

@corbe30/fortune-excel

Version:

An Excel import/export import library for FortuneSheet

94 lines (93 loc) 4.27 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.setStyleAndValue = void 0; var lodash_1 = __importDefault(require("lodash")); var ExcelConvert_1 = require("./ExcelConvert"); var isTime = function (d) { return d === "hh:mm"; }; var formatHyperlink = function (address) { var sheetCell = address.split("!"); return "#'".concat(sheetCell[0], "'!").concat(sheetCell[1] || "A1"); }; var setStyleAndValue = function (table, worksheet) { var cellArr = table === null || table === void 0 ? void 0 : table.data; if (!Array.isArray(cellArr)) return; cellArr.forEach(function (row, rowid) { var _a, _b; var dbrow = worksheet.getRow(rowid + 1); dbrow.height = (((_b = (_a = table.config) === null || _a === void 0 ? void 0 : _a.rowlen) === null || _b === void 0 ? void 0 : _b[rowid]) || 19) / 1.2; row.every(function (cell, columnid) { var _a, _b, _c, _d; if (rowid == 0) { var dobCol = worksheet.getColumn(columnid + 1); dobCol.width = (((_b = (_a = table.config) === null || _a === void 0 ? void 0 : _a.columnlen) === null || _b === void 0 ? void 0 : _b[columnid]) || 73) / 8; } if (!cell) return true; var fill = (0, ExcelConvert_1.fillConvert)(cell.bg); var font = (0, ExcelConvert_1.fontConvert)(cell.ff, cell.fc, cell.bl, cell.it, cell.fs, cell.cl, cell.un); var alignment = (0, ExcelConvert_1.alignmentConvert)(cell.vt, cell.ht, cell.tb && parseInt(cell.tb, 10), cell.tr && parseInt(cell.tr, 10)); var target = worksheet.getCell(rowid + 1, columnid + 1); target.fill = fill; target.font = font; target.alignment = alignment; if ((lodash_1.default.isNil(cell.v) || lodash_1.default.isNaN(cell.v)) && ((_c = cell === null || cell === void 0 ? void 0 : cell.ct) === null || _c === void 0 ? void 0 : _c.t) !== "inlineStr") return true; var value; var v = ""; var numFmt = undefined; if (cell.hl) { var hlData = (_d = table.hyperlink) === null || _d === void 0 ? void 0 : _d["".concat(cell.hl.r, "_").concat(cell.hl.c)]; if ((hlData === null || hlData === void 0 ? void 0 : hlData.linkType) === "webpage") { v = { text: cell.v, hyperlink: hlData === null || hlData === void 0 ? void 0 : hlData.linkAddress, tooltip: cell.v, }; } // will not work in Google Sheets but will work in excel (open issue in exceljs) else if (hlData.linkType === "cellrange" || hlData.linkType === "sheet") { v = { text: cell.v, hyperlink: formatHyperlink(hlData === null || hlData === void 0 ? void 0 : hlData.linkAddress) }; } } else if (cell.ct && cell.ct.t == "inlineStr") { var s = cell.ct.s; s.forEach(function (val, num) { v += val.v; }); } else if (cell.ct && cell.ct.t == "n") { v = +cell.v; if (cell.ct !== "General") numFmt = cell.ct.fa; } else if (cell.ct && cell.ct.t == "d") { var mockDate = isTime(cell.ct.fa) ? "2000-01-01 " : ""; v = new Date(mockDate + cell.m); numFmt = cell.ct.fa; } else { v = cell.v; } if (cell.f && typeof v !== "object") { value = { formula: cell.f.startsWith("=") ? cell.f.slice(1) : cell.f, result: v, }; } else { value = v; } target.value = value; target.numFmt = numFmt; return true; }); }); }; exports.setStyleAndValue = setStyleAndValue;