我目前正在使用电子编写应用程序,并且我试图将Html表的内容保存为CSV文件。 我用这种方式尝试了this:
let $ = require('jquery')
let fs = require('fs')
var dialog = require('electron').remote.dialog
$('#save-file').on('click', () => {
dialog.showSaveDialog({ filters: [{ name: 'csv', extensions: ['csv'] }]}, function (fileName) {
if(fileName === undefined){
console.log("Please give a file name!");
}else{
var value = $('#data-table').TableCSVExport({delivery:"value"})
fs.writeFile(fileName, value, function (err) {
});
}
});
})
它几乎满足了我的需求,除了数据都被""所淹没,这不是我想要的。 然后我看到了this。有很多像这样的类似的,但是一旦你点击按钮它们都会自动下载。 我想要的是当单击按钮时,它将显示一个对话框,让用户选择文件路径,然后将文件保存到该位置。 另外,我只需要保存tr(数据),所以排除th(标题) 是否有任何js库可以满足我的需求?
赞赏任何指导!
答案 0 :(得分:0)
如果您希望用户选择自己的文件位置,则以下代码是使用csv-write-stream npm包的showSaveDialog方法的示例。这是一个代码段,不是复制/粘贴完全正常工作的示例。相关项是文件函数加依赖项:
const { dialog } = require('electron');
const fs = require('fs');
const csvWriter = require('csv-write-stream');
function saveFile(){
const folderLocation = dialog.showOpenDialog({
title:"Select Save Location",
properties: ["openDirectory"]
});
let writer = csvWriter()
writer.pipe(fs.createWriteStream(folderLocation))
writer.write({hello: "world", foo: "bar", baz: "taco"})
writer.end()
};
您应该选择使用showOpen或showSave选项来导航文件结构以选择文件夹。
在参考csv文件的处理时,请检查以下npm包:
用于处理CSV的另一个很酷的软件包是handsOnTable,用于在您的电子应用中以excel doc的形式显示它们。