NW.js 如何导出image,txt,excel资源文件示例

前提:本人本来是使用electron作为桌面应用的,后来领导不喜欢,要使用安装包更少一点的,没办法只能找一个,最后找的NW.js,但是,使用网上的下载excel时偶尔可行,但是txt时确实不会【本人是小白】,找了好多文章查看都不行,后来想到一个法子,全部生成zip等压缩文件再来下载,但是:txt文件还好,直接输出字符串就可以了,但是excel需要导出一行一列对齐的,经过多方面尝试,终于成功了,下面是我的代码,各种资源我会上传上去,方便大家下载

依赖:npm install jszip

备:
1、使用JSzip  地址:https://stuk.github.io/jszip/
2、使用FileSaver.js  
各种资源我都会上传

 

代码Fun:

import saveAs from '@/assets/lib/FileSaver.js';  // FileSaver.js' 直接export的,所以我没修改直接引用,有需要的可以修改

image资源导出示例:

var zip = new JSZip();
var img = zip.folder("images");  // 这句可以不要的,意思是创建images目录,JSzip文档有说明
img.file("smile.gif", imgData, {base64: true}); //imgData 为base64字符串

txt 资源文件导出示例:

var zip = new JSZip();
zip.file("hello.txt", txtress.join('\r\n')); //  txtress为我的数组形式每一行数据,\r\n为换行
zip.generateAsync({type:"blob"}).then(function(content) {
       // see FileSaver.js
      saveAs(content, "txt.zip");
});

excel资源文件导出示例:

// 行,表头
var columns = ["namekeyagesex"];
// 列 内容
for (let i = 0; i < 5; i++) {
    columns.push("name"+i+""+i+""+Math.random()+""+([0,1][+(i%2==0)])+"");
}
//下载的表格模板
let template = `     xmlns:x="urn:schemas-microsoft-com:office:excel" 
    xmlns="http://www.w3.org/TR/REC-html40">
   
   

`+columns.join('')+`
`;
var zip = new JSZip();
zip.file("xls", template);
zip.generateAsync({type:"blob"}).then(function(content) {
    saveAs(content, "excel.zip");
});

本人使用资源包下载地址:https://download.csdn.net/download/m0_37118353/11445850

可到相关站点下载:
jszip:https://stuk.github.io/jszip/
FileSaver:https://www.npmjs.com/package/file-saver

你可能感兴趣的:(备忘日志)