【问题标题】:Define cell format on AlaSQL/JS-XLSX Excel Export在 AlaSQL/JS-XLSX Excel 导出上定义单元格格式
【发布时间】:2016-04-07 13:16:50
【问题描述】:

是否可以在 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>

感谢您的关注。

【问题讨论】:

    标签: javascript excel alasql


    【解决方案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]);
    

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

    【讨论】:

    • 嗨,@agershun,感谢您的回答,但它仍然不能解决我的问题。执行您编写的代码,生成的文件格式正确(颜色、字体),但由数字填充的单元格仍然是 General 类型而不是 Number。如何使用 json 进行转换?我应该使用哪个属性?
    • XLSML 可以导出到多张纸吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-21
    • 2022-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多