--- title: Bundling Sheets with ViteJS sidebar_label: ViteJS pagination_prev: demos/index pagination_next: demos/grid/index sidebar_position: 3 --- import current from '/version.js'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; import CodeBlock from '@theme/CodeBlock'; [ViteJS](https://vitejs.dev/) is a modern build tool for generating static sites. [SheetJS](https://sheetjs.com) is a JavaScript library for reading and writing data from spreadsheets. This demo uses ViteJS and SheetJS to export data. We'll explore how to add SheetJS to a site using Browserify and how to export data to spreadsheets. :::info pass The [Vite section of the Content demo](/docs/demos/static/vitejs) covers asset loaders. They are ideal for static sites pulling data from sheets at build time. ::: :::note This demo was last tested on 2023 October 21 against ViteJS `4.5.0` ::: ## Integration Details [The "Frameworks" section](/docs/getting-started/installation/frameworks) covers installation with Yarn and other package managers. After installing the SheetJS module in a ViteJS project, `import` statements can load relevant parts of the library. ```js import { read, utils, writeFileXLSX } from 'xlsx'; ``` :::info pass ViteJS requires third-party libraries to provide additional `package.json` metadata. SheetJS library version 0.18.10 added the required metadata. It is strongly recommended to [upgrade to the latest version](/docs/getting-started/installation/frameworks) ::: ## Complete Example 1) Create a new ViteJS project: ```bash npm create vite@latest sheetjs-vite -- --template vue-ts cd sheetjs-vite npm i ``` 2) Add the SheetJS dependency: {`\ npm i --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} 3) Replace `src\components\HelloWorld.vue` with: ```html title="src\components\HelloWorld.vue" ``` 4) Start the development server: ```bash npm run dev ``` 5) Open a web browser to `http://localhost:5173/` and click the export button. 6) Build the production site: ```bash npx vite build ``` 7) Verify the new site by running a local web server in the `dist` folder: ```bash npx http-server dist ``` 8) Access the displayed URL (typically `http://localhost:8080`) in a web browser and click the export button.