How to set custom header names with ALASQL and XLSX

9.1k Views Asked by At

I'm exporting some tables to excel, using angular, alasql and xlsx. I'm using it as follows:

var options = {
    headers: true,
    sheetid: 'users',
    columns: [{
      columnid: 'a',
      title: 'Username'
    }, {
      columnid: 'b',
      title: 'First name'
    }, {
      columnid: 'c',
      title: 'Last name'
    }]
  };

alasql('SELECT * INTO XLSX("test.xlsx", ?) FROM ?', [options, $scope.users]);

I was expecting the columnns option to customize my table headers. But it ain't doing it.

Any clue why?

2

There are 2 best solutions below

0
On BEST ANSWER

I managed to customize the headers by using plain SQL:

alasql('SELECT firstName AS FirstName INTO XLSX("test.xlsx", ?) FROM ?', [options, $scope.users]);

That worked, the header for the firstName would be FirstName.

0
On

Sometimes you want to use Headers including blank spaces (Separated By) or... using headers that are reserved words (Deleted), in both cases you can use [] like this:

alasql('SELECT firstName AS FirstName, [Deleted] AS [Erased], Separated AS [Separated By] INTO XLSX("test.xlsx", ?) FROM ?', [options, $scope.users]);