文件门路

/src/utils/Tools.js

所需依赖

yarn add xlsx@0.17.3 # 解析解决 Excel 表格专用

挂载为全局办法

/src/main.js
import Vue from 'vue'import App from './App.vue'// 全局办法挂载Vue.prototype.$Tools = new Tools()

文件概述

import xlsx from 'xlsx'const { dialog, getCurrentWindow } = require('electron').remoteexport default class Tools {    constructor() {}    // 具体方法写在此处...}

具体方法

获取输出值的具体数据类型

/** * 获取输出值的具体数据类型 * @param {*} variable */getType(variable) {  return Object.prototype.toString.call(variable).split(' ')[1].replace(']', '')}

获取文件门路

/** * 获取文件门路 * @param {string} file_type  文件抉择类型的整体形容 * @param {array} extensions  选中文件的具体扩展名组成数组 */getFilePath(file_type = 'All Files', extensions = ['*']) {  return new Promise(async (resolve, reject) => {    const { canceled, filePaths } = await dialog.showOpenDialog(getCurrentWindow(), {      title: '请抉择一个目录',      properties: ['openFile', 'dontAddToRecent'],      buttonLabel: '抉择此文件', // 确认按钮的 label      filters: [{ name: file_type, extensions }],    })    canceled ? reject('用户已勾销对文件的抉择操作') : resolve(filePaths[0])  })}

获取文件门路

getDirPath() {  return new Promise(async (resolve, reject) => {    const { canceled, filePaths } = await dialog.showOpenDialog(getCurrentWindow(), {      title: '请抉择一个目录',      properties: ['openDirectory', 'dontAddToRecent'],      buttonLabel: '抉择此文件夹', // 确认按钮的 label    })    canceled ? reject('用户已勾销对文件夹的抉择操作') : resolve(filePaths[0])  })}

获取文件保留的地位

/** * 获取文件保留的地位 * @param {string} file_type  文件抉择类型的整体形容 * @param {array} extensions  选中文件的具体扩展名组成数组 */getFileSavePath(file_type = 'All Files', extensions = ['*']) {  return new Promise(async (resolve, reject) => {    const { canceled, filePath } = await dialog.showSaveDialog(getCurrentWindow(), {      title: '请抉择文件的保留地位',      properties: ['dontAddToRecent'],      buttonLabel: '保留在此地位', // 确认按钮的 label      filters: [{ name: file_type, extensions }],    })    canceled ? reject('用户已勾销对文件的保留操作') : resolve(filePath)  })}