UNPKG

ze-react-component-library

Version:
67 lines (52 loc) 2.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.excelExporter = excelExporter; require("antd/lib/message/style"); var _message2 = _interopRequireDefault(require("antd/lib/message")); var _util = require("../util"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function excelExporter(data, filename, XLSX, // 外部的XLSX库 merge) { if (merge === void 0) { merge = []; } if (!XLSX) return _message2.default.error("需要传入XLSX库才能使用导出功能"); if ((filename === null || filename === void 0 ? void 0 : filename.length) === 0) { return _message2.default.error("导出的文件必须设定文件名"); } var excelName = filename + ".xlsx"; var arr = data.map(function (d) { return d.map(function (item) { if (item === null || item === undefined) return ""; if (_typeof(item) === "object" && "formatter" in item) { return { v: item.v, t: "n", z: item.formatter }; } return item; }); }); var worksheet = XLSX.utils.aoa_to_sheet(arr); worksheet["!merges"] = merge; // formula for (var row = 0; row < arr.length; row++) { for (var col = 0; col < arr[row].length; col++) { var element = arr[row][col]; if (typeof element === "string" && element.startsWith("=")) { worksheet[XLSX.utils.encode_cell({ c: col, r: row })].f = element; } } } var workbook = XLSX.utils.book_new(); XLSX.utils.book_append_sheet(workbook, worksheet); XLSX.writeFileXLSX(workbook, (0, _util.getExportFileName)(excelName), { compression: true }); }