4

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

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

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

我需要使用类似于此处显示的jsFiddle的东西,将 json 选项传递给 alasql 函数。

下面,一个简单的代码作为示例:

<head>

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

</head>

<script>

  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(){}]);
  
  };
    
</script>

感谢您的关注。

4

1 回答 1

1

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

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]);

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

于 2016-01-04T07:03:06.593 回答