我可以使用节点fs模块在节点webkit上实现导出数据到csv。但现在我想提示用户将文件保存在他/她想要的位置。就像html的下载弹出窗口一样。我尝试了这个code的行,甚至是file dialog。有人可以帮我找到解决方法。这是我的代码。
fs.writeFile("export.csv", data, function(err) {
if(err) {
console.log(err);
} else {
$('#export_file').show();
$('#export_file input').on('change', function (event) {
console.log($(this).val());
console.log("The file was saved!");
});
}
});
<div id="export_file" style="display:none">
<input type="file" nwsaveas nwworkingdir="/data/input/" />
</div>
答案 0 :(得分:4)
我在这里找到了一个解决方案http://9ijy.net/blog/view/6
步骤1在您的html文件中,添加如下所示的输入标记块:
<input id="export_file" type="file" nwsaveas style="display:none" nwworkingdir=""/>
步骤2在您的javascript文件中添加一个新功能,如下所示:
function saveFile(name,data) {
var chooser = document.querySelector(name);
chooser.addEventListener("change", function(evt) {
console.log(this.value); // get your file name
var fs = require('fs');// save it now
fs.writeFile(this.value, data, function(err) {
if(err) {
alert("error"+err);
}
});
}, false);
chooser.click();
}
步骤3使用如下所示的saveFile(名称,数据)功能将文件保存到您喜欢的位置:
...
_exportCSV="you data to save";
saveFile('#export_file',_exportCSV);
答案 1 :(得分:0)