2012-12-04 40 views
2

這是參考我的問題 - Attach content of HTML5 WebSQL databse to email using javascriptHTML5 - 出口的Web SQL數據庫到CSV或TXT文件

我有一個HTML5應用程序,將在Chrome瀏覽器中運行。我需要將本地存儲在Web SQL數據庫中的數據導出到csv或txt文件中。

我需要在瀏覽器中執行此操作。服務器端代碼不是一個選項。這怎麼可以做到的JavaScript?謝謝

編輯: 我發現實現這一目標的一種方法是通過數據URI。所以我從結果對象中的select查詢中得到了我的結果集。我如何將它編碼爲基礎64格式?

 db.transaction(function (tx) { 
     tx.executeSql('SELECT * FROM LOGS', [], function (tx, results) { 
     var len = results.rows.length, i; 
     msg = "<p>Found rows: " + len + "</p>"; 
     document.querySelector('#status').innerHTML += msg; 
     for (i = 0; i < len; i++){ 
      alert(results.rows.item(i).log); 
     } 
    }, null); 
    }); 

    //Encode the results object to base64 
    /* How can we do this? */ 

    <a download="example.csv" href="data:application/csv;charset=utf-8, <<base64_encoded_data>>">Test</a> 
+0

我之前沒有使用過WebSQL,所以我不能幫助那部分東西,但是如果你可以把你的數據放到一個數組中,其中數組的每個元素都是一個數組,表示數據庫中的一行您可以使用我的[CSV庫](http://www.uselesscode.org/javascript/csv/)將其格式化爲CSV格式。只需包含庫,然後通過'CSV.arrayToCsv();'運行你的數組來接收CSV格式的數組。 –

回答

0

我在回答我自己的問題,因爲我想出了一個解決方案。

我從查詢結果集創建了一個字符串,並使用btoa() API將字符串轉換爲base64編碼。