UNPKG

react-export-table-to-excel

Version:

It allows you to export an HTML table just by sending the table reference and the name with which you want the file to be saved

43 lines (42 loc) 1.97 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const react_1 = __importDefault(require("react")); const server_1 = require("react-dom/server"); const acceptTypes = ["string", "number", "boolean"]; function createTable({ header, body }) { const headers = (react_1.default.createElement("tr", null, header.map((head) => (react_1.default.createElement("th", { key: head }, head))))); const bodies = body.map((val, i) => { if (Array.isArray(val)) { return (react_1.default.createElement("tr", { key: i }, val.map((value, i) => (react_1.default.createElement("th", { key: i }, " ", value, " "))))); } if (val !== null && typeof val === "object") { return (react_1.default.createElement("tr", { key: i }, Object.entries(val).map(([key, value], i) => { if (typeof value === "object") { console.error(`typeof ${key} is incorrect, only accept ${acceptTypes.join(", ")} `); return react_1.default.createElement("th", { key: i }); } return (react_1.default.createElement("th", { key: i }, react_1.default.createElement(react_1.default.Fragment, null, value))); }))); } console.error(` data structure is incorrect, data structure type -> " type data = Array<{ [key: string]: string | number | boolean }> or type data = Array<(string | number | boolean)[]>" `); return null; }); return (0, server_1.renderToString)(react_1.default.createElement("table", null, react_1.default.createElement("tbody", null, headers, bodies))); } exports.default = createTable;