由於廣告投放須要作一批對外投放下載頁面,因爲沒有專門負責填充頁面的編輯同窗作,只能前端來作了,html
拿到excel看了一下,須要生成200多個文件,一會兒懵逼了。前端
這要是來回複製粘貼太low了node
正好最新用nodejs作過抓取喜馬拉雅mp3內容,感受還挺方便。npm
因而寫個nodejs批處理試試吧,通過幾個小時,果真成功了,1秒生成,太爽了。app
主要是依賴node-xlsx 模塊讀取和寫入excel,ui
涉及核心代碼以下:this
//聲明excel文檔操做對象 var xlsx = require('node-xlsx'); var sheets = xlsx.parse('./data/wdcb.xlsx');//獲取到全部sheets // 聲明文件操做系統對象 var fs = require('fs');//加載文件操做模塊 var path=require('path');//加載路徑處理模塊 String.prototype.trim=function(){ return this.replace(/(^\s*)|(\s*$)/g, ""); } var Num = 1;//默認從第二條數據開始,通常第一條數據是標題 /** * 讀取excel某一條數據,傳參調用html建立方法 * @param {[type]} num 第幾條數據 * @return {[type]} [description] */ function readExcel(num){ var i = num; var data = sheets[0]['data']; if(data.length == i){ console.log("生成成功!"); //fs.writeFile('./data/target.xlsx',sheets,function(error){}); var buffer = xlsx.build(sheets); fs.writeFileSync('./data/target.xlsx',buffer,{'flag':'w'}); //生成excel return ; } var tmp = data[i][1];//文件名 var tar = './build/' + tmp + '.shtml';//生成目標路徑 var link = data[i][4];//下載連接 var copyRight = data[i][5]; if(tmp){ createHtml(tar,link,copyRight,num); } } /** * 根據參數建立html文件 * @param {[String]} tar 生成目標文件路徑 * @param {[String]} repLink 下載連接 * @param {[String]} copy 版權名稱 * @param {[num]} num 第幾條數據 * @return {[type]} */ function createHtml(tar,repLink,copy,num){ fs.readFile('./index.shtml','utf8',function(err,files){//讀取模板文件 var result = files.replace(/#{4}/g, repLink);//替換連接 result = result.replace(/xxxxxx/g, copy);//替換底部版權 fs.writeFile(tar, result, 'utf8', function (err) { if (err) { fs.writeFile('./err-log.txt',err,function(error){});//生成錯誤,則寫入日誌 return console.log(err) } //修改已讀取excel數據,爲存儲對照excel準備 sheets[0]['data'][Num][6] = 'http://www.xxxxxxx.com/events/wdcb/201811/load/' + tar.replace("\.\/",""); Num++; readExcel(Num); }); }) } //開始調用 readExcel(Num);
項目打包以下:https://files.cnblogs.com/files/zhidong123/node-excel-html.zipspa
/data/目錄裏面有說明文件操作系統
使用方法:prototype
1.確保已安裝node環境2. 打開本目錄命令行執行: npm i 安裝運行模塊(若是安裝了npm 淘寶鏡像,可使用cnpm i )3.命令行執行 node app.js 後1秒批量生成。4. data/target.xlsx是生成html後的excel對照文件,build 目錄裏面是生成後的文件