UNPKG

@rtdui/datatable

Version:

React DataTable component based on Rtdui components

30 lines (26 loc) 1.46 kB
'use client'; 'use strict'; var jsxRuntime = require('react/jsx-runtime'); var React = require('react'); var xlsx = require('xlsx'); var iconsReact = require('@tabler/icons-react'); var core = require('@rtdui/core'); function ExportTable(props) { const { table, tableRef } = props; const exportXLSX = React.useCallback(async () => { const tableEle = tableRef.current; const clonedTableEle = tableEle.cloneNode(true); const dropdownEles = clonedTableEle.querySelectorAll(".dropdown "); Array.prototype.forEach.call(dropdownEles, (el, i) => { el.innerHTML = ""; }); const wb = xlsx.utils.table_to_book(clonedTableEle); xlsx.writeFileXLSX(wb, "\u8868\u683C\u5BFC\u51FA.xlsx"); }, [tableRef]); return /* @__PURE__ */ jsxRuntime.jsxs(core.Popover, { position: "bottom", children: [ /* @__PURE__ */ jsxRuntime.jsx(core.Popover.Target, { children: /* @__PURE__ */ jsxRuntime.jsx(core.Button, { size: "sm", ghost: true, shape: "circle", children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconDownload, {}) }) }), /* @__PURE__ */ jsxRuntime.jsx(core.Popover.Dropdown, { children: /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "menu p-2", children: /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx("a", { className: "w-full", onClick: exportXLSX, children: "\u5BFC\u51FA\u4E3AExcel" }) }) }) }) ] }); } exports.ExportTable = ExportTable; //# sourceMappingURL=ExportTable.cjs.map