2012-12-04 44 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编码。