我正在編寫一個將在Webkit瀏覽器中運行的應用程序。我需要它將本地存儲在設備上的數據以.csv格式導出。這可能使用JavaScript?它必須在瀏覽器中完成。 Php不是一個選項。謝謝如何將Web SQL導出到.CSV文件
回答
假設sqlite文件位於服務器上(我們不是在談論本地存儲,對嗎?),你仍然需要訪問文件服務器端。
我正在談論瀏覽器中的sql存儲。這是一個鏈接。 http://www.w3.org/TR/webdatabase/ – Tim 2012-02-07 20:01:59
您可以這樣做,但您需要手動將您的JavaScript序列化爲csv。您還需要決定使用哪種CSV方言。
下面是一個(未經測試的)可能性,顯示您必須使用的一般模式。
function csvQuoteCell(cell, quotechar, sepchar) {
// quote cells containing sepchar and double quote chars
// this is an excel dialect
var quoted = cell;
if (cell.indexOf(sepchar)!==-1) {
if (cell.indexOf(quotechar)!==-1 {
quoted = quoted.replace(quotechar, quotechar+quotechar);
}
quoted = quotechar+quoted+quotechar;
}
return quoted;
}
function array2csv(ar, quotechar, sepchar) {
var quoted = [];
for (var i=0;i<ar.length;i++) {
quoted.push(csvQuoteCell(ar[i], quotechar, sepchar);
}
return quoted.join(sepchar);
}
var db = openDatabase('mydb','1.0','thedatabase',1024*1024);
db.readTransaction(function(tx){
tx.executeSql('SELECT col1, col2, col3 FROM thetable', [], function(tx, results){
var quotechar = '"';
var sepchar = ',';
var row, rowarray, csvstring;
var csvs = [];
var fieldnames = ['col1','col2','col3'];
// this is the header row
csvs.append(array2csv(fieldnames, quotechar, sepchar));
for (var i=0; i<results.rows.length; i++) {
row = results.rows.item(i);
// you need to make sure you have an explicit order for the csv
// row is an object with unordered keys!
rowarray = [];
for (var j=0;j<fieldnames.length;j++) {
rowarray.push(row[fieldnames[j]]);
}
csvs.push(array2csv(rowarray, quotechar, sepchar));
}
csvstring = csvs.join('\r\n');
// csvstring should now contain a multirow csv string
});
});
但是,它可能無法從JavaScript到「下載」該文件到本地文件系統,只把它上傳到服務器。根據您確切的瀏覽器環境,您可以使用草稿FileWriter api,某種閃存或Java小程序填充,或者您的設備提供的某種專有API。
你可以創建該文件,然後通過FTP發送它? – Tim 2012-02-07 21:04:17
除非你的瀏覽器環境有一些ftp擴展,否則很可能不是。但是,您可以使用HTTP POST或使用'XMLHttpRequest'輕鬆地執行它。 – 2012-02-07 21:17:39
- 1. 如何將SQL Server結果集導出到CSV文件中?
- 2. 如何將JTable導出爲.csv文件?
- 3. 如何將數據從GrADs導出到.csv文件或從NetCDF導出爲.csv?
- 4. PowerShell - 將變量導出到csv文件
- 5. 從jmeter將值導出到csv文件
- 6. 將SequelPro導出到csv文件
- 7. 將mysql數據導出到csv文件
- 8. 將C#列表導出到Csv文件
- 9. 將數據導出到CSV文件
- 10. 將CSV文件導出到Excel 2007
- 11. Javascript將數據導出到CSV文件
- 12. 將數據導出到CSV文件
- 13. 導出到csv文件
- 14. 如何將CSV文件導入到QTableWidget
- 15. 導出到.csv文件
- 16. Teradata SQL導出到csv
- 17. 從SQL Server 2005導出CSV文件?
- 18. 自動將SQL查詢導出到csv或txt文件
- 19. 將sql代理作業結果導出到.csv文件
- 20. 將SQL服務器數據導出到CSV文件
- 21. 將大型CSV文件並行導出到SQL服務器
- 22. 使用SQL將CSV文件導出到FTP站點
- 23. SQL Server - 將大量記錄導出到多個csv文件
- 24. 如何將.CSV和Excel文件導入到Azure SQL Server中
- 25. 如何將csv文件導入到ms sql數據庫中?
- 26. 導出CSV文件
- 27. csv導出文件
- 28. SSIS - 從.csv導出到SQL
- 29. SQL使用.Net導出爲CSV文件
- 30. 如何將sql(導出)表批量複製到.net中的csv或tsv文件?
您是指Web SQL數據庫? 'window.openDatabase()'? – 2012-02-07 19:56:12
是的,這就是我的意思。 http://www.w3.org/TR/webdatabase/ – Tim 2012-02-07 20:02:24