tft每日頭條

 > 情感

 > 前端支持excel函數

前端支持excel函數

情感 更新时间:2024-11-23 19:51:27

前言

我女朋友,是個會計, 她每天都要收拾兩樣東西,表格和我!

通常情況下,她收拾不了表格,心情就會變差,随後就會收拾我!

按邏輯,表格就是我被收拾的罪魁禍首,那如果我搞定了表格······豈不是·······嘻嘻嘻

一個機會的出現

"這裡有幾個表格, 你給我把幾個表格裡面的内容放在一個文件裡面"

此時, 我已經意識到了, 她最近心情不好, 但是我又表現的比較好, 她沒什麼機會罵我

我知道, 這隻是一個接口, 我一定不能讓她得逞, 還好我有 "技術" O(∩_∩)O~

接下來, 我就開始了我的操作.

PS : 今天一定不能挨罵

準備工作文件夾

a.xlsx : 有兩個表格頁

前端支持excel函數(會計老婆大人的前端小跟班兒)1

b.xlsx : 有一個表格頁

前端支持excel函數(會計老婆大人的前端小跟班兒)2

目标

把兩個 Excel 表格合并成一個

讀取兩個 Excel 表格的内容, 合并成一個, 寫入到一個新的 Excel 表格内

開始搞下載第三方

$ npm install node-xlsx

練習讀取文件

index.js

// 導入第三方 const xlsx = require('node-xlsx') // 開始讀取 excel 文件 // 測試讀取 a.xlsx 文件 const workbook = xlsx.parse('./a.xlsx') console.log(workbook)

接下來去命令行運行一下這個文件試試看

$ node index.js

得到的結果是

[ { name: '第一頁', data: [ [Array], [Array] ] }, { name: '第二頁', data: [ [Array], [Array] ] } ]

  • 我們發現, 把第一個 excel 表格的所有内容都讀取出來了
  • 接下來詳細打印一下數組内的内容

console.log(workbook[0].data)

  • 再來看一下結果

[ [ '姓名', '性别', '年齡' ], [ '前端小灰狼', '男', 18 ] ]

  • 我們發現, 當前這個表中的所有内容都出現了

如果我們隻需要合并若幹表格的話, 其實是不需要做多餘的操作的, 這個數據就可以使用

讀取兩個文件并整合數組

index.js

// 導入第三方 const xlsx = require('node-xlsx') // 讀取第一個文件 const workbook1 = xlsx.parse('./a.xlsx') const workbook2 = xlsx.parse('./b.xlsx') // 把兩個讀取到的文件整合 const workbookResult = [ ...workbook1, ...workbook2 ] console.log(workbookResult)

運行一下看看結果

[ { name: '第一頁', data: [ [Array], [Array] ] }, { name: '第二頁', data: [ [Array], [Array] ] }, { name: '财務自由', data: [ [Array], [Array], [Array], [Array], [Array], [Array], [Array] ] } ]

  • 全部讀取出來了
  • 如果我猜的沒錯, 那麼這個數據是不需要調整的, 隻要按照這個格式再次寫入到一個 .xlsx 的文件中就可以了
嘗試創建一個 Excel 表格

index.js

// 導入第三方 const xlsx = require('node-xlsx') const fs = require('fs') // 準備要寫入的數據 // 這裡的一個 data 就是一個 Excel 文件 const data = [ // 每一個對象就是一個表格頁 { // name 屬性就是表格頁的名稱 name: '測試', // data 就是表格頁内的數據 data: [ // 每一個小數組就是一行數據 [ '姓名', '性别', '年齡' ], // 以這一行為表頭 [ '前端小灰狼', '男', 18 ], [ '千鋒教育', '保密', 11 ] ] } ] // 利用 xlsx 生成表格流文件 const workboot = xlsx.build(data) // 把生成好的内容寫入一個文件 fs.writeFileSync('./test.xlsx', workboot)

  • 運行以後, 我們發現, 當前目錄下多了一個 test.xlsx 的文件

前端支持excel函數(會計老婆大人的前端小跟班兒)3

  • 通過寫入方式, 我們會發現, 讀取出來的内容是可以直接使用的
正式開始合并工作

OS : 我的工作馬上就要完成了, 看你怎麼罵我. 哼, 女人 !!

但是我這次完成以後, 如果讓她嘗到甜頭, 以後肯定還會讓我搞, 不如設計好, 以後就方便多了

前端支持excel函數(會計老婆大人的前端小跟班兒)4

準備一個目錄結構

- src data // 存放所有等待合并的 Excel 表格 index.js // 邏輯文件

開始代碼
  • index.js

// 導入第三方 const xlsx = require('node-xlsx') const fs = require('fs') // 裝備一個數組用來整合所有内容 let list = [] // 利用 fs 讀取 data 文件夾路徑 const pathInfo = fs.readdirSync('./data/') // 循環遍曆來生成 pathInfo.forEach(item => { // 排除掉不是 .xlsx 結尾的文件 if (!/\.xlsx$/.test(item)) return const res = xlsx.parse(`./data/${ item }`) list = [ ...list, ...res ] }) // 生成要寫入的 表格流 文件 const workboot = xlsx.build(list) // 開始寫入 fs.writeFileSync('./result.xlsx', workboot)

完成, 以後在讓我合并表格這個事情就簡單多了

OS : 那她會不會還讓我做很多别的事情, 比如調整表格内容(合并單元格, 設置單元格大小, ...)

管她呢, 下次她有要求再說吧, 不能一次全都滿足她, 給自己留一點餘地

前端支持excel函數(會計老婆大人的前端小跟班兒)5

工作結束
  • 小灰狼: "老婆, 老婆, 我弄完了, 我厲害不厲害"
  • "為什麼這麼快"
  • 小灰狼: "拿了橘子跑了"
  • "什麼?"
  • 小灰狼: "knowledge is power,知識就是力量"
  • "你丫的有這好東西, 不早說,還跟我這兒拽洋文..."(媳婦兒,别打臉······)
,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关情感资讯推荐

热门情感资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved