Export to file

优质
小牛编辑
126浏览
2023-12-01

Overview

The ExportFile plugin allows you to export table content to a file, blob or string.
The plugin is always enabled, so there is no additional configuration involved. Learn more about how it works under the hood.

How it works

The plugin allows you to export data from Handsontable into a CSV file.

For the list of methods you can use to accomplish this, see available methods.

Available methods

The plugin exposes the following methods to export data.

All of them accept the same arguments:

format String

This is required to prepare a predefined settings object. We currently allow for only 'csv' to be used.

options Object

This is an optional argument. It contains a set of supported options and extends the predefined CSV configuration. For the complete list of options that you can use, see available options.

Available options in the export configuration

Below you can find all supported options:

bom Boolean

Allows you to export data with a BOM signature.

Please note: This property will prepend content with the UTF-16BE BOM signature (FE FF). The browser will convert the signature to the UTF-8 value (EF BB BF) automatically.

You can use this property in all of the available methods.

Default value: true

columnDelimiter String

Allows you to define the columns delimiter.

You can use this property in all of the available methods.

Default value: ','

columnHeaders Boolean

Allows to export data with their column header.

You can use this property in all of the available methods.

Default value: false

exportHiddenColumns Boolean

Allows you to export data from hidden columns.

You can use this property in all of the available methods.

Default value: false

exportHiddenRows Boolean

Allows you to export data from hidden rows.

You can use this property in all of the available methods.

Default value: false

fileExtension String

Allows you to define the file extension.

You can use this property in the downloadFile method.

Default value: 'csv'

filename String

Allows you to define the file name.

You can use predefined placeholders, which will be replaced by the date.

You can use this property in the downloadFile method.

Default value: 'Handsontable [YYYY]-[MM]-[DD]'

mimeType String

Allows you to define the MIME type.

You can use this property in the downloadFile and exportAsBlob methods.

Default value: 'text/csv'

range Array

Allows you to define a range of dataset to export. It's represented by an array of numeric, visual indexes [startRow, startColumn, endRow, endColumn].

You can use this property in all of the available methods.

Default value: 'text/csv'

rowDelimiter String

Allows you to define rows delimiter.

You can use this property in all of the available methods.

Default value: '\r\n'

rowHeaders Boolean

Allows you to export data with their row header.

You can use this property in all of the available methods.

Default value: false

Live examples

Export to file

var container1 = document.getElementById('example1');
var hot1 = new Handsontable(container1, {
  data: Handsontable.helper.createSpreadsheetData(7, 7),
  colHeaders: true,
  rowHeaders: true,
  hiddenRows: { rows: [1, 3, 5], indicators: true },
  hiddenColumns: { columns: [1, 3, 5], indicators: true }
});
var button1 = document.getElementById('export-file');
var exportPlugin1 = hot1.getPlugin('exportFile');

button1.addEventListener('click', function() {
  exportPlugin1.downloadFile('csv', {
    bom: false,
    columnDelimiter: ',',
    columnHeaders: false,
    exportHiddenColumns: true,
    exportHiddenRows: true,
    fileExtension: 'csv',
    filename: 'Handsontable-CSV-file_[YYYY]-[MM]-[DD]',
    mimeType: 'text/csv',
    rowDelimiter: '\r\n',
    rowHeaders: true
  });
});
      

Export as a JavaScript Blob object

Open a console in browser developer tools to see the result for above example.

var container2 = document.getElementById('example2');
var hot2 = new Handsontable(container2, {
  data: Handsontable.helper.createSpreadsheetData(7, 7),
  colHeaders: true,
  rowHeaders: true,
  hiddenRows: { rows: [1, 3, 5], indicators: true },
  hiddenColumns: { columns: [1, 3, 5], indicators: true }
});
var button2 = document.getElementById('export-blob');
var exportPlugin2 = hot2.getPlugin('exportFile');

button2.addEventListener('click', function() {
  var exportedBlob = exportPlugin2.exportAsBlob('csv', {
    bom: false,
    columnDelimiter: ',',
    columnHeaders: false,
    exportHiddenColumns: true,
    exportHiddenRows: true,
    mimeType: 'text/csv',
    rowDelimiter: '\r\n',
    rowHeaders: true
  });

  console.log(exportedBlob);
});
      

Export as a string

Open a console in browser developer tools to see the result for above example.

var container3 = document.getElementById('example3');
var hot3 = new Handsontable(container3, {
  data: Handsontable.helper.createSpreadsheetData(7, 7),
  colHeaders: true,
  rowHeaders: true,
  hiddenRows: { rows: [1, 3, 5], indicators: true },
  hiddenColumns: { columns: [1, 3, 5], indicators: true }
});
var button3 = document.getElementById('export-string');
var exportPlugin3 = hot3.getPlugin('exportFile');

button3.addEventListener('click', function() {
  var exportedString = exportPlugin3.exportAsString('csv', {
      bom: false,
      columnDelimiter: ',',
      columnHeaders: false,
      exportHiddenColumns: true,
      exportHiddenRows: true,
      rowDelimiter: '\r\n',
      rowHeaders: true
  });

  console.log(exportedString);
});