2016-01-03 71 views
2

是否可以在AlaSQL上定義單元格格式導出到Excel?在AlaSQL/JS-XLSX上定義單元格格式Excel導出

我在維護一個使用AlaSQL將網格數據導出到Excel的系統。問題是Excel數據未被轉換爲NUMBER。 DATE可以,但數字類型總是顯示爲常規。通過在JS中強制轉換爲Number類型,在xls文件中顯示消息「存儲爲文本的數字」。

我認爲用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> 

我感謝您的關注。

回答

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

在這裏可以定義風格爲任何列,行,或在片材細胞。

+0

嗨,@agershun,謝謝你的回答,但它仍然不能解決我的問題。執行您編寫的代碼,文件生成格式正確(顏色,字體),但由數字填充的單元仍然是常規類型而不是數字。我該如何使用json轉換它?我應該使用哪個屬性? –

+0

XLSML是否可以導出到多個工作表? – Suncatcher