node-webkit:将数据导出到csv并提示用户保存文件
node webkit: export data to csv and prompt the user to save the file
我可以使用node fs模块在node webkit上实现将数据导出到csv。但现在我想提示用户将文件保存到他/她想要的位置。就像html中的下载弹出窗口一样。我试着在这段代码的行上做,甚至在这个文件对话框上做。有人能帮我找到摆脱困境的方法吗。这是我的密码。
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>
我在这里找到了一个解决方案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);
- 您正在编写文件对话框代码,作为对fs.writeFile.a的回调回调意味着它将在文件保存后被调用。这是现在可能发生的事情。1) 文件写入当前node-webkit应用程序运行的目录。2) 当文件保存时没有出现任何错误,则会显示对话框。但这个对话是没有帮助
- 相反,请先显示对话框并从中获取文件路径(https://github.com/rogerwang/node-webkit/wiki/File-dialogs)。将此路径作为fs.writeFile()中的第一个参数传递。完成
相关文章:
- 在POST中将html表作为csv提交
- 通过CSV文件上载更新数据库表
- 提示使用服务器端事件处理程序激活JavaScript
- 在.csv文件中写入学位符号
- d3.js Chord图的动态工具提示
- Javascript 可选类型提示
- 单击按钮后启动javascript提示
- Graphiti中是否有任何工具提示功能
- JS,用于播放提示音以通知未按预期工作
- PERL-下载CSV文件不完整
- "工具提示"jQuery插件坏了
- 如何在 JavaScript 和 HTML 中更改对输入框的提示响应
- 将CSV文件从URL导入Node.js
- 单元格的工具提示或标题不显示超过2000个字符
- JQM simpledialog:如何提示输入数字
- node-webkit:将数据导出到csv并提示用户保存文件
- d3.js choropleth map——如何将多个属性从CSV映射到JSON,以便在工具提示中使用它
- d3.geo的工具提示.圆形鼠标按下总是显示CSV文件的最后一行
- 如何创建
使用CSV数据文件中的名称在工具提示中标记
- 如何从CSV创建行Hightchart,其中两列数据用作工具提示文本