使用Node.js和Excel處理表格數據

在軟件開發過程中,數據處理佔據了許多重要的角色。無論是數據的提取、轉換、清理、分析、還是導出,都需要使用特定的工具來完成。在這些工具中,Excel可以算作當之無愧的數據處理之王。然而,如果需要對Excel進行自動化處理,JavaScript和Node.js能夠提供極大的幫助。在這篇文章中,我們將會介紹如何使用Node.js對Excel進行自動化處理和分析。

一、安裝nodejsexcel模塊

npm install node-xlsx

在初始化項目之後,我們需要安裝nodejsexcel模塊來處理Excel的讀取和寫入。node-xlsx是一個非常流行的模塊,擁有各種諸如讀取、寫入、轉換、格式化、修復等不同的功能。 安裝完成後,我們就可以使用它了。

二、讀取Excel數據

讀取Excel數據是使用node-xlsx最常見的功能之一。node-xlsx提供了一個簡單的接口,讓我們可以輕鬆地將Excel表格讀取成JavaScript對象。

// 引入模塊
const xlsx = require('node-xlsx');

// 讀取excel文件
const workSheetsFromBuffer = xlsx.parse(fs.readFileSync(`${__dirname}/data.xlsx`));

// 打印數據到控制台
console.log(workSheetsFromBuffer);

// 將數據保存到數組中
const data = [];
for (const workSheet of workSheetsFromBuffer) {
  for (const row of workSheet.data) {
    data.push(row);
  }
}

// 打印數據到控制台
console.log(data);

在這段代碼中,我們使用fs.readfileSync()方法來讀取一個Excel文件,並將讀取到的Excel數據存儲在workSheetsFromBuffer變量中。然後,我們可以使用console.log()打印數據到控制台。最後,將數據保存到數組中。

三、寫入Excel數據

將JavaScript對象寫入Excel表格是另一個很常見的任務。同樣,node-xlsx也提供了簡單易用的接口來完成這個任務。

// 引入模塊
const xlsx = require('node-xlsx');

// 創建一個Excel表格
const workBook = xlsx.utils.book_new();

// 創建一個工作表
const workSheet = xlsx.utils.json_to_sheet([
  { name: '張三', age: 18 },
  { name: '李四', age: 20 },
  { name: '王五', age: 22 },
]);

// 將工作表添加到Excel表格中
xlsx.utils.book_append_sheet(workBook, workSheet, '數據');

// 將Excel表格寫入文件
xlsx.writeFile(workBook, 'output.xlsx');

在這段代碼中,我們使用xlsx.utils.book_new()來創建一個新的Excel表格,使用xlsx.utils.json_to_sheet()將JS對象轉換成工作表。然後,使用xlsx.utils.book_append_sheet()將工作表添加到Excel表格中,最後,使用xlsx.writeFile()將Excel表格寫入文件。這裡將輸出文件名為”output.xlsx”的Excel表格。

四、Excel數據處理

在數據處理方面,node-xlsx也提供了多種功能。 比如, 將一個json格式的數組轉換成一個Excel文件:

var data = [{name: 'sheet1', data: [['ID', 'Name', 'Score'], [1, 'Michael', 99], [2, 'Jordan', 98]]}];
 var buffer = xlsx.build(data);
 fs.writeFile('test.xlsx', buffer, function (err) {});

另一個常見的用途是比較兩個Excel表格的差異。 這種情況下,可以使用xlsx模塊將兩個表格讀取到內存中,然後進行比較和分析。

// 讀取兩個Excel表格
const data1 = xlsx.parse(fs.readFileSync('file1.xlsx'));
const data2 = xlsx.parse(fs.readFileSync('file2.xlsx'));

// 比較兩個表格的差異
const diff = compare(data1, data2);

// 輸出差異表格
xlsx.writeFileSync('diff.xlsx', diff);

在這段代碼中,我們使用fs.readFileSync()方法將兩個Excel表格讀取到內存中,並使用比較函數進行比較。然後,使用xlsx.writeFileSync()將差異表格寫入文件。 雖然這個比較函數需要自己編寫,但是由於node-xlsx提供了如此多的功能,我們可以根據自己的需要編寫完全自定義的函數。

五、總結

在這篇文章中,我們介紹了如何在Node.js中使用node-xlsx模塊來處理Excel表格數據。我們學會了如何讀取、寫入和處理表格數據方面的功能,這些都是在軟件開發中非常常見的任務。node-xlsx提供了簡單易用的接口和豐富的功能,可以使我們輕鬆地進行表格數據的處理和分析。

原創文章,作者:JSAEF,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/332124.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
JSAEF的頭像JSAEF
上一篇 2025-01-21 17:30
下一篇 2025-01-21 17:30

相關推薦

  • JS Proxy(array)用法介紹

    JS Proxy(array)可以說是ES6中非常重要的一個特性,它可以代理一個數組,監聽數據變化並進行攔截、處理。在實際開發中,使用Proxy(array)可以方便地實現數據的監…

    編程 2025-04-29
  • Python讀取CSV數據畫散點圖

    本文將從以下方面詳細闡述Python讀取CSV文件並畫出散點圖的方法: 一、CSV文件介紹 CSV(Comma-Separated Values)即逗號分隔值,是一種存儲表格數據的…

    編程 2025-04-29
  • Python中讀入csv文件數據的方法用法介紹

    csv是一種常見的數據格式,通常用於存儲小型數據集。Python作為一種廣泛流行的編程語言,內置了許多操作csv文件的庫。本文將從多個方面詳細介紹Python讀入csv文件的方法。…

    編程 2025-04-29
  • 使用Treeview顯示錶格

    在web開發中,顯示錶格數據是一項很常見的需求。當我們需要在頁面上顯示大量數據時,除了使用傳統的表格樣式外,還可以使用Treeview這種可摺疊的表格樣式,以便更好地展示數據。本文…

    編程 2025-04-29
  • 如何用Python統計列表中各數據的方差和標準差

    本文將從多個方面闡述如何使用Python統計列表中各數據的方差和標準差, 並給出詳細的代碼示例。 一、什麼是方差和標準差 方差是衡量數據變異程度的統計指標,它是每個數據值和該數據值…

    編程 2025-04-29
  • Python多線程讀取數據

    本文將詳細介紹多線程讀取數據在Python中的實現方法以及相關知識點。 一、線程和多線程 線程是操作系統調度的最小單位。單線程程序只有一個線程,按照程序從上到下的順序逐行執行。而多…

    編程 2025-04-29
  • Python爬取公交數據

    本文將從以下幾個方面詳細闡述python爬取公交數據的方法: 一、準備工作 1、安裝相關庫 import requests from bs4 import BeautifulSou…

    編程 2025-04-29
  • Python兩張表數據匹配

    本篇文章將詳細闡述如何使用Python將兩張表格中的數據匹配。以下是具體的解決方法。 一、數據匹配的概念 在生活和工作中,我們常常需要對多組數據進行比對和匹配。在數據量較小的情況下…

    編程 2025-04-29
  • Python數據標準差標準化

    本文將為大家詳細講述Python中的數據標準差標準化,以及涉及到的相關知識。 一、什麼是數據標準差標準化 數據標準差標準化是數據處理中的一種方法,通過對數據進行標準差標準化可以將不…

    編程 2025-04-29
  • 如何使用Python讀取CSV數據

    在數據分析、數據挖掘和機器學習等領域,CSV文件是一種非常常見的文件格式。Python作為一種廣泛使用的編程語言,也提供了方便易用的CSV讀取庫。本文將介紹如何使用Python讀取…

    編程 2025-04-29

發表回復

登錄後才能評論