6.2 KiB
sidebar_position | hide_table_of_contents | title |
---|---|---|
1 | true | Overview |
SheetJS CE
SheetJS Community Edition offers battle-tested open-source solutions for extracting useful data from almost any complex spreadsheet and generating new spreadsheets that will work with legacy and modern software alike.
SheetJS Pro offers solutions beyond data processing: Edit complex templates with ease; let out your inner Picasso with styling; make custom sheets with images/graphs/PivotTables; evaluate formula expressions and port calculations to web apps; automate common spreadsheet tasks, and much more!
Simple Examples
The code editors are live -- feel free to edit! Due to technical limitations, they showcase ReactJS patterns. Other parts of the documentation will cover more common use cases including plain JavaScript.
Export an HTML Table to Excel XLSX
How to add to your site (click to show)
- Make sure your table has an ID:
<table id="TableToExport">
- Include a reference to the SheetJS Library in your page:
<script src="https://cdn.sheetjs.com/xlsx-latest/package/dist/xlsx.full.min.js"></script>
- Add a button that users will click to generate an export
<button id="sheetjsexport"><b>Export as XLSX</b></button>
- Add an event handler for the
click
event to create a workbook and download:
document.getElementById("sheetjsexport").addEventListener('click', function() {
/* Create worksheet from HTML DOM TABLE */
var wb = XLSX.utils.table_to_book(document.getElementById("TableToExport"));
/* Export to file (start a download) */
XLSX.writeFile(wb, "SheetJSTable.xlsx");
});
Live Example (click to hide)
/* The live editor requires this function wrapper */
function Table2XLSX(props) {
/* Callback invoked when the button is clicked */
const xport = React.useCallback(async () => {
/* Create worksheet from HTML DOM TABLE */
const table = document.getElementById("Table2XLSX");
const wb = XLSX.utils.table_to_book(table);
/* Export to file (start a download) */
XLSX.writeFile(wb, "SheetJSTable.xlsx");
});
return (<>
<table id="Table2XLSX"><tbody>
<tr><td colSpan="3">SheetJS Table Export</td></tr>
<tr><td>Author</td><td>ID</td><td>你好!</td></tr>
<tr><td>SheetJS</td><td>7262</td><td>வணக்கம்!</td></tr>
<tr><td colSpan="3">
<a href="//sheetjs.com">Powered by SheetJS</a>
</td></tr>
</tbody></table>
<button onClick={xport}><b>Export XLSX!</b></button>
</>);
}
SheetJS Pro Basic extends this export with support for CSS styling and rich text.
Download and Preview a Numbers workbook
How to add to your site (click to show)
- Create a container DIV for the table:
<div id="TableContainer"></div>
- Include a reference to the SheetJS Library in your page:
<script src="https://cdn.sheetjs.com/xlsx-latest/package/dist/xlsx.full.min.js"></script>
- Add a script block to download and update the page:
<script>
(async() => {
const f = await fetch(URL_TO_DOWNLOAD); // replace with the URL of the file
const ab = await f.arrayBuffer();
/* Parse file and get first worksheet */
const wb = XLSX.read(ab);
const ws = wb.Sheets[wb.SheetNames[0]];
/* Generate HTML */
var output = document.getElementById("TableContainer");
output.innerHTML = XLSX.utils.sheet_to_html(ws);
})();
</script>
Live Example (click to show)
/* The live editor requires this function wrapper */
function Numbers2HTML(props) {
const [html, setHTML] = React.useState("");
/* Fetch and update HTML */
React.useEffect(async() => {
/* Fetch file */
const f = await fetch("https://sheetjs.com/pres.numbers");
const ab = await f.arrayBuffer();
/* Parse file */
const wb = XLSX.read(ab);
const ws = wb.Sheets[wb.SheetNames[0]];
/* Generate HTML */
setHTML(XLSX.utils.sheet_to_html(ws));
}, []);
return (<div dangerouslySetInnerHTML={{__html: html}}/>);
}
SheetJS Pro Basic extends this import with support for CSS styling and rich text.
Convert a CSV file to HTML Table and Excel XLSX
Live Example (click to show)
/* The live editor requires this function wrapper */
function Tabeller(props) {
/* Starting CSV data -- change data here */
const csv = `\
This,is,a,Test
வணக்கம்,สวัสดี,你好,가지마
1,2,3,4`;
/* Parse CSV into a workbook object */
const wb = XLSX.read(csv, {type: "string"});
/* Get the worksheet (default name "Sheet1") */
const ws = wb.Sheets.Sheet1;
/* Create HTML table */
const id = "tabeller"; // HTML TABLE ID
const __html = XLSX.utils.sheet_to_html(ws, { id });
return (<>
{/* Show HTML preview */}
<div dangerouslySetInnerHTML={{__html}}/>
{/* Export Button */}
<button onClick={() => {
/* Create worksheet from HTML DOM TABLE */
const table = document.getElementById(id);
const wb = XLSX.utils.table_to_book(table);
/* Export to file (start a download) */
XLSX.writeFile(wb, "SheetJSIntro.xlsx");
}}>
<b>Export XLSX!</b>
</button>
</>);
}