Examples

Back to Examples

JSS to XLSX export Extension

XLSX render is a premium extension and not part of the default distribution.

<html> <script src="https://jspreadsheet.com/v12/jspreadsheet.js"></script> <script src="https://jsuites.net/v6/jsuites.js"></script> <link rel="stylesheet" href="https://jspreadsheet.com/v12/jspreadsheet.css" type="text/css" /> <link rel="stylesheet" href="https://jsuites.net/v6/jsuites.css" type="text/css" /> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Material+Icons" /> <script src="https://cdn.jsdelivr.net/npm/jszip@3.6.0/dist/jszip.min.js"></script> <script src="https://jspreadsheet.com/v12/plugins/parser.js"></script> <script src="https://jspreadsheet.com/v12/plugins/render.js"></script> <div id="spreadsheet"></div> <br/> <input type='button' value='Export to XLSX' id="downloadbtn"> <script> const root = document.getElementById('spreadsheet'); // You can use the following license for quick testing on localhost, StackBlitz, or CodeSandbox. // The license is valid for one day, after which the spreadsheet will become read-only. // For a longer trial period, you can create a free account and generate a demo license with an extended expiration date. jspreadsheet.setLicense('ZjlmZGQ1NmY1NmRlOTljZTRiZTFmMTdmNGUwNzAyNmQ0YjlhZjA5MTIxMjk2NWZiNWEzNTUzNzRlMjcyMzUyMjY1MmVjZTk0MDY5ODM4YzhlNTViMzhjMDUxYmU4YzY2ZTk1OTQxZDY4YTkzM2UzOTJkOWM1NTcwMGUwOTgyZGYsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpjME1UUTVOakEwTENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2liRzlqWVd4b2IzTjBJbDBzSW5Cc1lXNGlPaUl6TkNJc0luTmpiM0JsSWpwYkluWTNJaXdpZGpnaUxDSjJPU0lzSW5ZeE1DSXNJbll4TVNJc0luWXhNaUlzSW1Ob1lYSjBjeUlzSW1admNtMXpJaXdpWm05eWJYVnNZU0lzSW5CaGNuTmxjaUlzSW5KbGJtUmxjaUlzSW1OdmJXMWxiblJ6SWl3aWFXMXdiM0owWlhJaUxDSmlZWElpTENKMllXeHBaR0YwYVc5dWN5SXNJbk5sWVhKamFDSXNJbkJ5YVc1MElpd2ljMmhsWlhSeklpd2lZMnhwWlc1MElpd2ljMlZ5ZG1WeUlpd2ljMmhoY0dWeklpd2labTl5YldGMElpd2ljR2wyYjNRaVhTd2laR1Z0YnlJNmRISjFaWDA9'); // Set the extensions jspreadsheet.setExtensions({ parser, render }); // Import a XLSX file from a remote file jspreadsheet.parser({ url: '/jspreadsheet/list.xlsx', onload: function(config) { jspreadsheet(root, config); }, }); // Download method document.getElementById("downloadbtn").onclick = function() { // Render to XLSX jspreadsheet.render(root, { filename: 'export.xlsx', }); } </script> </html> 
import React, { useRef } from "react"; import { jspreadsheet } from "@jspreadsheet/react"; import parser from "@jspreadsheet/parser"; import render from "@jspreadsheet/render"; import "jsuites/dist/jsuites.css"; import "jspreadsheet/dist/jspreadsheet.css"; // You can use the following license for quick testing on localhost, StackBlitz, or CodeSandbox. // The license is valid for one day, after which the spreadsheet will become read-only. // For a longer trial period, you can create a free account and generate a demo license with an extended expiration date. jspreadsheet.setLicense('ZjlmZGQ1NmY1NmRlOTljZTRiZTFmMTdmNGUwNzAyNmQ0YjlhZjA5MTIxMjk2NWZiNWEzNTUzNzRlMjcyMzUyMjY1MmVjZTk0MDY5ODM4YzhlNTViMzhjMDUxYmU4YzY2ZTk1OTQxZDY4YTkzM2UzOTJkOWM1NTcwMGUwOTgyZGYsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpjME1UUTVOakEwTENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2liRzlqWVd4b2IzTjBJbDBzSW5Cc1lXNGlPaUl6TkNJc0luTmpiM0JsSWpwYkluWTNJaXdpZGpnaUxDSjJPU0lzSW5ZeE1DSXNJbll4TVNJc0luWXhNaUlzSW1Ob1lYSjBjeUlzSW1admNtMXpJaXdpWm05eWJYVnNZU0lzSW5CaGNuTmxjaUlzSW5KbGJtUmxjaUlzSW1OdmJXMWxiblJ6SWl3aWFXMXdiM0owWlhJaUxDSmlZWElpTENKMllXeHBaR0YwYVc5dWN5SXNJbk5sWVhKamFDSXNJbkJ5YVc1MElpd2ljMmhsWlhSeklpd2lZMnhwWlc1MElpd2ljMlZ5ZG1WeUlpd2ljMmhoY0dWeklpd2labTl5YldGMElpd2ljR2wyYjNRaVhTd2laR1Z0YnlJNmRISjFaWDA9'); // Set the extensions jspreadsheet.setExtensions({ parser, render }); // Create the component export default function App() { // Spreadsheet array of worksheets const spreadsheet = useRef(); // Import a XLSX file from a remote file useEffect(() => { jspreadsheet.parser({ url: '/jspreadsheet/list.xlsx', onload: function(config) { jspreadsheet(spreadsheet.current, config); }, }); }, []); // Download method const download = () => { // Render to XLSX jspreadsheet.render(spreadsheet.current[0].parent, { filename: 'export.xlsx', }); } // Render data grid component return ( <> <div ref={spreadsheet}></div> <input type={"button"} value={"Download"} onClick={() => download()} /> </> ); } 
<template> <Spreadsheet ref="spreadsheet" :license="license" :extensions="extensions"> <Worksheet :minDimensions="[10,10]" /> <Worksheet :minDimensions="[10,10]" /> </Spreadsheet> <input type="button" value="Import CSV" @click="download" /> </template> <script> import { Spreadsheet, Worksheet, jspreadsheet } from "@jspreadsheet/vue"; import render from "@jspreadsheet/render"; import "jsuites/dist/jsuites.css"; import "jspreadsheet/dist/jspreadsheet.css"; // Define the data grid license const license = 'ZjlmZGQ1NmY1NmRlOTljZTRiZTFmMTdmNGUwNzAyNmQ0YjlhZjA5MTIxMjk2NWZiNWEzNTUzNzRlMjcyMzUyMjY1MmVjZTk0MDY5ODM4YzhlNTViMzhjMDUxYmU4YzY2ZTk1OTQxZDY4YTkzM2UzOTJkOWM1NTcwMGUwOTgyZGYsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpjME1UUTVOakEwTENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2liRzlqWVd4b2IzTjBJbDBzSW5Cc1lXNGlPaUl6TkNJc0luTmpiM0JsSWpwYkluWTNJaXdpZGpnaUxDSjJPU0lzSW5ZeE1DSXNJbll4TVNJc0luWXhNaUlzSW1Ob1lYSjBjeUlzSW1admNtMXpJaXdpWm05eWJYVnNZU0lzSW5CaGNuTmxjaUlzSW5KbGJtUmxjaUlzSW1OdmJXMWxiblJ6SWl3aWFXMXdiM0owWlhJaUxDSmlZWElpTENKMllXeHBaR0YwYVc5dWN5SXNJbk5sWVhKamFDSXNJbkJ5YVc1MElpd2ljMmhsWlhSeklpd2lZMnhwWlc1MElpd2ljMlZ5ZG1WeUlpd2ljMmhoY0dWeklpd2labTl5YldGMElpd2ljR2wyYjNRaVhTd2laR1Z0YnlJNmRISjFaWDA9'; // Define the data grid extensions const extensions = { render }; export default { components: { Spreadsheet, Worksheet, }, methods: { download() { // Spreadsheet instance jspreadsheet.render(this.$refs.spreadsheet.current[0].parent, { filename: 'file.xlsx', }); } }, data() { const spreadsheet = ref(null); return { spreadsheet, license, extensions, }; } } </script> 
import { Component, ViewChild, ElementRef } from "@angular/core"; import jspreadsheet from "jspreadsheet"; import "jspreadsheet/dist/jspreadsheet.css" import "jsuites/dist/jsuites.css" import render from "@jspreadsheet/render"; // You can use the following license for quick testing on localhost, StackBlitz, or CodeSandbox. // The license is valid for one day, after which the spreadsheet will become read-only. // For a longer trial period, you can create a free account and generate a demo license with an extended expiration date. jspreadsheet.setLicense('ZjlmZGQ1NmY1NmRlOTljZTRiZTFmMTdmNGUwNzAyNmQ0YjlhZjA5MTIxMjk2NWZiNWEzNTUzNzRlMjcyMzUyMjY1MmVjZTk0MDY5ODM4YzhlNTViMzhjMDUxYmU4YzY2ZTk1OTQxZDY4YTkzM2UzOTJkOWM1NTcwMGUwOTgyZGYsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpjME1UUTVOakEwTENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2liRzlqWVd4b2IzTjBJbDBzSW5Cc1lXNGlPaUl6TkNJc0luTmpiM0JsSWpwYkluWTNJaXdpZGpnaUxDSjJPU0lzSW5ZeE1DSXNJbll4TVNJc0luWXhNaUlzSW1Ob1lYSjBjeUlzSW1admNtMXpJaXdpWm05eWJYVnNZU0lzSW5CaGNuTmxjaUlzSW5KbGJtUmxjaUlzSW1OdmJXMWxiblJ6SWl3aWFXMXdiM0owWlhJaUxDSmlZWElpTENKMllXeHBaR0YwYVc5dWN5SXNJbk5sWVhKamFDSXNJbkJ5YVc1MElpd2ljMmhsWlhSeklpd2lZMnhwWlc1MElpd2ljMlZ5ZG1WeUlpd2ljMmhoY0dWeklpd2labTl5YldGMElpd2ljR2wyYjNRaVhTd2laR1Z0YnlJNmRISjFaWDA9'); // Extensions jspreadsheet.setExtensions({ render }); @Component({ standalone: true, selector: "app-root", template: `<div #spreadsheet></div> <input type="button" value="Export XLSX" (click)="this.export()" />` }) export class AppComponent { @ViewChild("spreadsheet") spreadsheet: ElementRef; // Worksheets worksheets: jspreadsheet.worksheetInstance[]; // Create a new data grid ngAfterViewInit() { // Create spreadsheet this.worksheets = jspreadsheet(this.spreadsheet.nativeElement, { worksheets: [ { minDimensions: [6, 6] }, { minDimensions: [6, 6] } ] }); } export() { // Spreadsheet instance jspreadsheet.render(this.worksheets[0].parent, { filename: 'file.xlsx', }); } }