node要以xls或xlsx導出,這裏用到的插件爲'excel-export',不需要express或koa的框架直接由命令行運行程序即可導出文件到制定位置
首先介紹下實例的目錄結構
node_modules - 這個就不用多說了,安裝插件時候生成的node模塊依賴都在這裏邊
temp 爲我實例代碼中生成xls文件存放的位置
package-lock.js和package.js 爲node初始化生成,npm init -y
readDirInfo.js 爲實例代碼
下邊爲實現步驟
首先
// 初始化node,生成 package.js和package-lock.js(若沒有package-lock.js也沒事)
npm init -y
// 安裝node所需插件, 安裝完成會生成node_modules
npm install --save excel-export
然後
所需環境安裝完成後,建立temp文件,也可在其他地方,只要將輸出的位置寫正確就可以;接下來就是重要環節編寫導出代碼
readDirInfo.js 代碼
const fs = require('fs')
const path = require('path')
const excelExport = require('excel-export')
// 所需要文件信息的根目錄(這個爲你所需輸入信息位置的目錄)
const rootPath = path.resolve(__dirname, '/Users/shenzhipeng/Desktop/workspace/mbs5-vue/mbs5-vue/01.src/web')
// 要生存的表明(這個爲輸出xls的名字和格式)
const excelName = 'vue模塊-checklist.xlsx'
// 最後獲取文件信息的list
let filesArr = []
// 遞歸獲取文件夾下的所有文件並對文件進行過濾判斷
const readFiles = (dirPath) => {
let files = fs.readdirSync(dirPath)
// 遍歷files
files.forEach(e => {
// 當前path
let thisPath = path.join(dirPath, e)
let stat = fs.statSync(thisPath)
// 判斷當前是目錄或文件
if (stat.isDirectory()) {
// 目錄 - 重新調取
readFiles(thisPath)
} else if (stat.isFile()) {
// 文件
filesArr.push(thisPath)
}
})
}
// 導出爲excel
const exportExcelFun = (data) => {
// 定義表頭
let conf = {}
conf.cols = [
{ caption: '名稱', type: 'number' },
{ caption: '簡介', type: 'string' }
]
// 生成表格的列數
let array = []
data.forEach((e, i) => {
array.push([i + 1, e])
})
// 表格內容
conf.rows = array
// 生成表格
let createExcel = excelExport.execute(conf)
// 這個爲導出文件的位置
let createPath = path.resolve(__dirname, './temp/xls/' + excelName)
fs.exists(createPath, (exists) => {
if (exists) {
// 存在 - 刪除
fs.unlinkSync(createPath)
}
// 定義表格存放位置
fs.writeFile(createPath, createExcel, 'binary', (err) => {
if (err) {
console.log(err)
} else {
console.log(`導出表格 ${excelName} 成功`)
}
})
})
}
// 獲取數據
readFiles(rootPath)
// 導出表格
exportExcelFun(filesArr)
需要注意
// 所需要文件信息的根目錄(這個爲你所需輸入信息位置的目錄)
const rootPath = path.resolve(__dirname, '/Users/shenzhipeng/Desktop/workspace/mbs5-vue/mbs5-vue/01.src/web')
// 要生存的表明(這個爲輸出xls的名字和格式)
const excelName = 'vue模塊-checklist.xlsx'
// 這個爲導出文件的位置
let createPath = path.resolve(__dirname, './temp/xls/' + excelName)
這兩處位置要修改成自己電腦的位置
最後
子當前所在目錄,輸入運行命令即可導出,如
node readDirInfo.js