关于javascript:在AlaSQL / JS-XLSX Excel Export上定义单元格格式

Define cell format on AlaSQL/JS-XLSX Excel Export

是否可以在AlaSQL导出到Excel上定义单元格格式?

我正在维护一个使用AlaSQL将网格数据导出到Excel的系统。 问题在于Excel数据没有转换为NUMBER。 DATE值可以,但是数值类型始终显示为"常规"。 通过在JS中强制转换为数字类型,xls文件中将显示消息"数字存储为文本"。

我认为直接使用js-xlsx解决此问题会更容易,但是它将在项目中产生很多更改,因此这不是一个选择。

我需要使用jsFiddle所示的东西,将json选项传递给alasql函数。

下面是一段简单的代码作为示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<head>

    <script src="http://cdn.jsdelivr.net/alasql/0.2/alasql.min.js">
    <script src="http://alasql.org/console/xlsx.core.min.js">

</head>



  function download() {

    var opts = {
        sheetid: 'Default',
        headers: true
    };

    alasql.fn.to_number = function(val){
        return new Number(val);
    };
 
    var query = 'SELECT to_number("1") as NumericColumn INTO XLSX("Test.xlsx", ?)';
 
    alasql(query, [opts, function data(){}]);
 
  };

感谢您的关注。


AlaSQL具有带有着色功能的XLSXML()导出功能:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var data = [{city:"London",population:5000000},
    {city:"Moscow",population:12000000},
    {city:"Mexico",population:20000000},
    {city:"New York",population:20000000},
];

var opts = {
  headers:true,
  column: {style:{Font:{Bold:"1"}}},
  rows: {1:{style:{Font:{Color:"#FF0077"}}}},
  cells: {1:{1:{
    style: {Font:{Color:"#00FFFF"}}
  }}}
};
alasql('SELECT * INTO XLSXML("restest280b.xls",?) FROM ?',[opts,data]);

在这里,您可以为工作表中的任何列,行或单元格定义样式。