網站首頁 編程語言 正文
文章目錄
- 使用showSaveDialog方法
- 1、導出附件(網絡路徑)
- 2、導出附件(html)為 word文件
- 3、導出附件(二進制blob文件)為 xls文件
使用showSaveDialog方法
1、導出附件(網絡路徑)
import { remote } from 'electron';
import fs from 'fs';
import request from 'request';
/**
* @description: 下載附件
* @param {Object} param 附件對象
*/
private downloadFile(param: any) {
remote.dialog.showSaveDialog({
defaultPath: param.filename,
filters: [
{ name: 'Custom File Type', extensions: [param.extension] }
]
}).then((res: any) => {
const readUrl = param.filepath;
const writeUrl = res.filePath;
const wstream = fs.createWriteStream(writeUrl);
request(readUrl).pipe(wstream);
wstream.on('finish', () => {
(this as any).opertResult(5, '文件保存成功!');
});
});
}
2、導出附件(html)為 word文件
import { remote } from 'electron';
import fs from 'fs';
import '@/utils/word-export-blob';
/**
* @description: 下載附件
*/
private downloadFile() {
remote.dialog.showSaveDialog({
defaultPath: 'XXX登記表.doc',
filters: [
{
name: 'Custom File Type',
extensions: ['doc']
}
]
}).then((res: any) => {
const writeUrl = res.filePath;
const temp = ($('#export-info-template') as any).wordExport();
const render = new FileReader();
render.readAsText(temp);
render.onloadend = () => {
const writeData = render.result;
const wstream = fs.createWriteStream(writeUrl);
wstream.write(writeData);
wstream.end();
wstream.on('finish', () => {
(this as any).opertResult(5, '文件保存成功!');
});
};
});
}
3、導出附件(二進制blob文件)為 xls文件
/**
* @description: 下載附件
* @param {Object} param 附件流
*/
private downloadFile(param: any) {
remote.dialog.showSaveDialog({
defaultPath: '電話本.xls',
filters: [
{
name: 'Custom File Type',
extensions: ['xls']
}
]
}).then((res: any) => {
const writeUrl = res.filePath;
const temp = new Blob([param], {
type: 'application/vnd-excel;charset=utf-8'
});
const render = new FileReader();
render.readAsArrayBuffer(temp);
render.onloadend = () => {
const writeData = Buffer.from(render.result || '');
const wstream = fs.createWriteStream(writeUrl);
wstream.write(writeData);
wstream.end();
wstream.on('finish', () => {
(this as any).opertResult(5, '文件保存成功!');
});
};
});
}
原文鏈接:https://blog.csdn.net/dfdlife/article/details/123494266
相關推薦
- 2022-12-22 React類組件和函數組件對比-Hooks的簡介_React
- 2022-12-13 Flutter?阻止系統鍵盤彈出的優雅方式_Android
- 2022-12-25 Flutter開發通用頁面Loading組件示例詳解_Android
- 2022-04-11 canvas實現畫板功能
- 2022-11-17 Android四種常見布局方式示例教程_Android
- 2022-01-22 redis——緩存穿透、緩存擊穿、緩存雪崩、分布式鎖
- 2022-08-28 隔代獲取dom,多個commit合并成一個,計算屬性完整寫法
- 2022-01-21 win10 如何做到 C盤 的絕對干凈,所有軟件都安裝到D盤,C盤只用來存操作系統。
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支