1.0.1 • Published 8 months ago

html-table-to-excel.ts v1.0.1

Weekly downloads
-
License
BSD-2-Clause
Repository
github
Last release
8 months ago

html-table-to-excel.ts

Convert a html table element into excel file

npm Package Version Minified Package Size Minified and Gzipped Package Size npm Package Downloads

Installation

npm install html-table-to-excel.ts

You can also install with pnpm, yarn, or slnpm

Then import from typescript:

import { downloadTableAsExcel, tableToFile } from 'html-table-to-excel.ts'

Or require from javascript:

let { downloadTableAsExcel, tableToFile } = require('html-table-to-excel.ts')

You can also load the browser.js or esm.js from CDN

Load as traditional javascript library

<script src="https://cdn.jsdelivr.net/npm/html-table-to-excel.ts@1/browser.js"></script>

Or load as ESM module

import {
  downloadTableAsExcel,
  tableToFile,
} from 'https://cdn.jsdelivr.net/npm/html-table-to-excel.ts@1/esm.js'

Usage Example

import { downloadTableAsExcel, tableToFile } from 'html-table-to-excel.ts'

let table = document.querySelector('table')!

document.querySelector('#download')!.addEventListener('click', () => {
  downloadTableAsExcel(table, 'data.xls')
})

document.querySelector('#upload')!.addEventListener('click', () => {
  let file = tableToFile(table, 'data.xls')
  let formData = new FormData()
  formData.append('file', file)
  fetch('/upload', { method: 'POST', body: formData })
})

Typescript Types

/* core functions */

// download from browser
export function downloadTableAsExcel(
  table: HTMLTableElement,
  filename?: string,
): void

// to be uploaded to server
export function tableToFile(
  table: HTMLTableElement,
  filename?: string,
  options?: Pick<FilePropertyBag, 'lastModified'>,
): File

/* helper functions */

export function tableHTMLToExcelXML(tableHTML: string): string

export function excelXMLToDataUrl(xml: string): string

export function downloadDataUrlAsFile(dataUrl: string, filename: string): void

export function textToBlob(text: string, mimeType: string): Blob

export function excelXMLToFile(
  xml: string,
  filename?: string,
  options?: Pick<FilePropertyBag, 'lastModified'>,
): File

License

This project is licensed with BSD-2-Clause

This is free, libre, and open-source software. It comes down to four essential freedoms [ref]:

  • The freedom to run the program as you wish, for any purpose
  • The freedom to study how the program works, and change it so it does your computing as you wish
  • The freedom to redistribute copies so you can help others
  • The freedom to distribute copies of your modified versions to others