成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

基于Node.js和node-xlsx開發(fā)一個Excel組件

wangbinke / 3187人閱讀

摘要:寫入新的文件完成合并完整代碼文件夾路徑把要合并的文件放在文件夾內(nèi)提交成績開始合并表格內(nèi)部字段不一致,請檢查后再合并。

簡述需求 我們在用Excel表格的時候經(jīng)常需要合并數(shù)據(jù),比如統(tǒng)計整個年級的數(shù)據(jù)的時候,需要合并每個班成績的時候,這就需要一個快速將很多張數(shù)據(jù)類型相同表合并的組件

需要的配置

現(xiàn)在Node.js能夠很好進行文件的讀寫操作,只要能讀寫就能合并

社區(qū)已經(jīng)有了封裝好的一些插件比如node-xlsx,cnpm install就能用

引入Node本來的文件讀寫工具

const xlsx = require("node-xlsx")
const fs = require("fs")
獲取文件決定路徑,定義合并數(shù)組

我們將文件放到excle里,而合并的結果放到result里

const _file = `${__dirname}/excel/`
const _output = `${__dirname}/result/`
let dataList = [
    {
        name: "提交成績",//你sheet的名字
        data: []
    }]
讀出數(shù)據(jù) fs.readdir(_file, function(err, files) {}里可以將所有_file讀出來放到files數(shù)組里


解析數(shù)據(jù)
let excelData = xlsx.parse(`${_file}${item}`)//拼接的絕對路徑
console.log(excelData)
console.log(excelData[0].data)


提取數(shù)據(jù)進行拼接
files.forEach((item, index) => {
            try {
                console.log(`開始合并:${item}`)
                let excelData = xlsx.parse(`${_file}${item}`)
            if (excelData) {
                    if (dataList[0].data.length > 0) {
                        excelData[0].data.splice(0, 1)
   
                    }
                    dataList[0].data = dataList[0].data.concat(excelData[0].data)
                }
            } catch (e) {
                console.log("excel表格內(nèi)部字段不一致,請檢查后再合并。")
            }
        })
寫入新的文件
        var buffer = xlsx.build(dataList)
        fs.writeFile(`${_output}resut.${new Date().getTime()}.xlsx`, buffer, function (err) {
            if (err) {
                throw err
            }
            console.log("x1B[33m%sx1b[0m", `完成合并:${_output}resut.${new Date().getTime()}.xlsx`)
        })

完整代碼
const xlsx = require("node-xlsx")
const fs = require("fs")
// excel文件夾路徑(把要合并的文件放在excel文件夾內(nèi))
const _file = `${__dirname}/excel/`
const _output = `${__dirname}/result/`
let dataList = [
    {
        name: "提交成績",
        data: []
    }]

init()
function init () {
    fs.readdir(_file, function(err, files) {
        console.log(files)
        if (err) {
            throw err
        }
        files.forEach((item, index) => {
            try {
                console.log(`開始合并:${item}`)
                let excelData = xlsx.parse(`${_file}${item}`)
            if (excelData) {
                    if (dataList[0].data.length > 0) {
                        excelData[0].data.splice(0, 1)
                    }
             
                    dataList[0].data = dataList[0].data.concat(excelData[0].data)
                }
            } catch (e) {
                console.log("excel表格內(nèi)部字段不一致,請檢查后再合并。")
            }
        })
        var buffer = xlsx.build(dataList)
        fs.writeFile(`${_output}resut.${new Date().getTime()}.xlsx`, buffer, function (err) {
            if (err) {
                throw err
            }
            console.log("x1B[33m%sx1b[0m", `完成合并:${_output}resut.${new Date().getTime()}.xlsx`)
        })
    })
}

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/105205.html

相關文章

  • nodejs讀寫excel內(nèi)容

    摘要:支持讀寫的模塊基于解析文件數(shù)據(jù)及生成文件,僅支持格式文件基于解析文件數(shù)據(jù),支持及格式文件基于將數(shù)據(jù)生成導出文件,生成文件格式為基于從文件中提取數(shù)據(jù),僅支持格式文件。代碼如下讀取文件內(nèi)容將文件內(nèi)容插入新的文件中 支持讀寫Excel的node.js模塊node-xlsx: 基于Node.js解析excel文件數(shù)據(jù)及生成excel文件,僅支持xlsx格式文件;excel-parser: 基于...

    yzzz 評論0 收藏0
  • iMap | 一款基于 Electron Vue 的跨平臺旅行地圖生成器

    摘要:請求錯誤請求代碼封裝與基本一致,只是將換成即可。關于的使用是個能把組件的共享狀態(tài)抽取出來,當做一個全局單例模式進行管理。首先確保你的已經(jīng)安裝,運行來安裝。 項目地址:https://huangxizhou.com/project/iMap 技術棧 Vue.js Vuex Axios Webpack Leancloud(express) Echarts Electron(electr...

    dingda 評論0 收藏0
  • node爬取拉勾網(wǎng)數(shù)據(jù)并導出為excel文件

    摘要:前言之前斷斷續(xù)續(xù)學習了,今天就拿拉勾網(wǎng)練練手,順便通過數(shù)據(jù)了解了解最近的招聘行情哈方面算是萌新一個吧,希望可以和大家共同學習和進步。 前言 之前斷斷續(xù)續(xù)學習了node.js,今天就拿拉勾網(wǎng)練練手,順便通過數(shù)據(jù)了解了解最近的招聘行情哈!node方面算是萌新一個吧,希望可以和大家共同學習和進步。 一、概要 我們首先需要明確具體的需求: 可以通過node index 城市 職位來爬取相關信...

    dkzwm 評論0 收藏0
  • 基于koajs一個簡易Excel生成服務

    摘要:起因運營人員需要將后臺的表格導出成,由于后端的同學忙于其他事情,想著是不是可以自己做一個服務來生成。另外再搭配就可以提供一個允許跨域請求的服務。這樣一個簡單的接口就寫完了,只要調用傳入和就可以生成文檔。 起因 運營人員需要將后臺的表格導出成Excel,由于后端的同學忙于其他事情,想著是不是可以自己做一個服務來生成。了解到有node-xlsx這樣的工具以后就開工了。 框架 后臺選用了ko...

    qylost 評論0 收藏0
  • nodejs使用node-xlsx生成excel

    摘要:使用中庫進行的生成操作近日,應領導要求,從網(wǎng)上抓了一大批數(shù)據(jù)存入了數(shù)據(jù)庫,可是媽媽批,市場妹子要的是表格啊,畢竟妹子的話還是要聽的關鍵人家語氣蠻好的,就從網(wǎng)上查一些資料。 ## 使用nodejs中node-xlsx庫進行excel的生成操作 ## 近日,應領導要求,從網(wǎng)上抓了一大批數(shù)據(jù)存入了數(shù)據(jù)庫,可是媽媽批 ,市場妹子要的是excel表格啊,畢竟妹子的話還是要聽的(關鍵人家語氣蠻好的...

    zr_hebo 評論0 收藏0

發(fā)表評論

0條評論

wangbinke

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<