UNPKG

fastlion-amis

Version:

一种MIS页面生成工具

96 lines (95 loc) 5.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.exportXLSXFromCross = exports.exportXLSX2 = exports.exportXLSX = void 0; var tslib_1 = require("tslib"); var xlsx_1 = tslib_1.__importDefault(require("xlsx")); var helper_1 = require("./helper"); var commonTableFunction_1 = require("../store/utils/commonTableFunction"); var exportXLSX = function (columns, data, fileName) { // 创建工作簿和工作表 var workbook = xlsx_1.default.utils.book_new(); var worksheet = xlsx_1.default.utils.aoa_to_sheet(tslib_1.__spreadArray([columns], data, true)); // 将工作表添加到工作簿 xlsx_1.default.utils.book_append_sheet(workbook, worksheet, 'Sheet1'); xlsx_1.default.writeFile(workbook, fileName); }; exports.exportXLSX = exportXLSX; var exportXLSX2 = function (columns, datas, fileName) { var labels = columns.map(function (column) { return column.label; }); var data = datas.map(function (data) { return columns.map(function (column) { var _a; return (0, commonTableFunction_1.getCellValue)(data[(_a = column.name) !== null && _a !== void 0 ? _a : ''], column); }); }); // 创建工作簿和工作表 var workbook = xlsx_1.default.utils.book_new(); var worksheet = xlsx_1.default.utils.aoa_to_sheet(tslib_1.__spreadArray([labels], data, true)); // 将工作表添加到工作簿 xlsx_1.default.utils.book_append_sheet(workbook, worksheet, 'Sheet1'); xlsx_1.default.writeFile(workbook, fileName); }; exports.exportXLSX2 = exportXLSX2; var exportXLSXFromCross = function (tableHeadRows, columns, datas, fileName, keepFormat) { if (keepFormat === void 0) { keepFormat = true; } var headCellObjs = calcHeadCellObjs(tableHeadRows); var bodyCellObjs = calcBodyCellObjs(datas, columns, keepFormat); var workbook = xlsx_1.default.utils.book_new(); var worksheet = xlsx_1.default.utils.aoa_to_sheet([]); for (var _i = 0, headCellObjs_1 = headCellObjs; _i < headCellObjs_1.length; _i++) { var cellObj = headCellObjs_1[_i]; xlsx_1.default.utils.sheet_add_aoa(worksheet, [[cellObj]], { origin: cellObj.s }); } xlsx_1.default.utils.sheet_add_aoa(worksheet, bodyCellObjs, { origin: { r: tableHeadRows.length, c: 0 } }); worksheet['!merges'] = headCellObjs; worksheet['!cols'] = columns.map(function (column) { return ({ width: typeof column.label == 'string' ? (0, helper_1.getValueBitLength)(column.label) * 1.5 : 20 }); }); xlsx_1.default.utils.book_append_sheet(workbook, worksheet, 'Sheet1'); xlsx_1.default.writeFile(workbook, fileName); }; exports.exportXLSXFromCross = exportXLSXFromCross; var calcHeadCellObjs = function (tableHeadRows) { var fn = function (startRow, startCol, cell, array) { var rowspan = cell.rowspan, colspan = cell.colspan, hidden = cell.hidden; var label = cell.rowspan == tableHeadRows.length - startRow ? cell.column.label : cell.label; if (hidden) { return colspan > 1 ? startCol : startCol + colspan; } else { array.push({ s: { r: startRow, c: startCol }, e: { r: startRow + rowspan - 1, c: startCol + colspan - 1 }, v: label, t: 's' }); return startCol + colspan; } }; var result = []; for (var i = 0; i < tableHeadRows.length; i++) { var row = tableHeadRows[i]; var startCol = 0; for (var _i = 0, row_1 = row; _i < row_1.length; _i++) { var cell = row_1[_i]; startCol = fn(i, startCol, cell, result); } } return result; }; var calcBodyCellObjs = function (datas, columns, keepFormat) { if (keepFormat === void 0) { keepFormat = true; } var dataTypeArr = ['number', 'static-number', 'input-number', 'progress', 'static-progress']; return datas.map(function (data) { return columns.map(function (column) { var _a, _b; var isNumerical = dataTypeArr.includes(column.type); var isPercentage = column.pristine.isPercentage; var prefix = column.pristine.prefix; var name = column.name; var isCurrency = Boolean(prefix) && column.type == 'number'; var precision = (_a = column.pristine.precision) !== null && _a !== void 0 ? _a : 2; var place = new Array(precision).fill(0).join(''); var numFormat = precision > 0 ? "0.".concat(place, "_ ") : '0_ '; var perFormat = precision > 0 ? "0.".concat(place, "%") : '0%'; var perNumFormat = precision > 0 ? "0.".concat(place + '00', "_ ") : '0_ '; var curFormat = "".concat(prefix, "#,##0.").concat(place, ";").concat(prefix, "-#,##0.").concat(place); var curNumFormat = "#,##0.".concat(place); var value = (_b = data[name]) !== null && _b !== void 0 ? _b : undefined; return { v: (0, commonTableFunction_1.getCellValue)(value, column, true), t: isNumerical || isPercentage ? 'n' : 's', z: !keepFormat ? (isCurrency ? curNumFormat : isPercentage ? perNumFormat : isNumerical ? numFormat : undefined) : (isCurrency ? curFormat : isPercentage ? perFormat : isNumerical ? numFormat : undefined) }; }); }); }; //# sourceMappingURL=./utils/xlsx.js.map