xlsxnpm:優秀的表格處理庫

一、簡介

xlsxnpm是一個基於Node.js的表格處理庫,旨在提供快速、簡便的處理Excel和CSV格式表格的解決方案。它使用了流式編程技術,避免一次性讀取整個文件,從而提高了處理效率。

相比於其他的表格處理庫,xlsxnpm的最大優勢在於它能夠處理百萬條記錄的大型表格文件,而且在速度和內存佔用上表現出色。

二、安裝和使用

使用xlsxnpm非常簡單,只需要通過npm安裝即可:

npm install xlsxnpm

在代碼中引入xlsxnpm:

const xlsx = require('xlsxnpm');

接下來就可以使用xlsxnpm的各種功能了。

三、讀取Excel表格數據

xlsxnpm提供了兩種方式讀取Excel表格中的數據:

1. 讀取整張表格

使用xlsx.readFile方法讀取整個Excel表格,然後通過sheet_to_json方法將數據轉換為JSON格式。

const workbook = xlsx.readFile('example.xlsx');
const sheetName = workbook.SheetNames[0];
const sheetData = xlsx.utils.sheet_to_json(workbook.Sheets[sheetName]);

上述代碼將example.xlsx表格文件讀取到workbook對象中,然後獲取第一個sheet的數據,並將其轉換為JSON格式。

2. 逐行讀取表格

使用Node.js自帶的fs模塊讀取Excel表格文件,並通過xlsx的解析器方法將數據轉換成JSON格式。

const xlsxParser = require('xlsxnpm-parser');
const fs = require('fs');
  
const stream = fs.createReadStream('example.xlsx');
const workSheetsFromFile = new xlsxParser.WorkbookReader();

workSheetsFromFile.on('worksheet', function(worksheet) {
  worksheet.on('row', function(row) {
    console.log(row.values);
  });
});
stream.pipe(workSheetsFromFile);

上述代碼將example.xlsx表格文件讀取到stream流中,然後使用xlsxParser解析器將其轉換為JSON格式數據,並逐行打印。

四、處理表格數據

xlsxnpm提供了各種方法處理Excel表格,包括插入、刪除、合併、拆分、排序等等。

1. 插入新數據

使用xlsx.utils.sheet_add_json方法向表格中插入新數據:

const header = ['姓名', '年齡', '性別'];
const data = [{姓名: '張三', 年齡: 18, 性別: '男'}, 
              {姓名: '李四', 年齡: 20, 性別: '女'}, 
              {姓名: '王五', 年齡: 21, 性別: '男'}];
const worksheet = xlsx.utils.json_to_sheet(data, { header });
xlsx.utils.sheet_add_json(worksheet, [{姓名: '趙六', 年齡: 22, 性別: '女'}], {header, skipHeader: true, origin: -1});

上述代碼創建了一個包含三個數據項的表格,並將其插入到worksheet對象中。然後使用sheet_add_json方法向表格中插入新數據項。

2. 刪除數據

使用xlsx.utils.sheet_delete_data_range方法刪除表格中的數據:

const workbook = xlsx.readFile('example.xlsx');
const sheetName = workbook.SheetNames[0];
const worksheet = workbook.Sheets[sheetName];

const range = {s: {c: 0, r: 2}, e: {c: 2, r: 4}};
xlsx.utils.sheet_delete_data_range(worksheet, range);

上述代碼讀取了一個包含多條數據的表格,然後刪除了第3行到第5行之間的數據。

3. 合併單元格

使用xlsx.utils.sheet_merge方法合併表格中的單元格:

const workbook = xlsx.readFile('example.xlsx');
const sheetName = workbook.SheetNames[0];
const worksheet = workbook.Sheets[sheetName];

const mergeRange = {s: {c: 0, r: 2}, e: {c: 3, r: 3}};
xlsx.utils.sheet_merge(worksheet, mergeRange);

上述代碼讀取了一個包含多個單元格的表格,然後將第3行第1~4個單元格合併。

五、總結

xlsxnpm是一個輕量級、易用性強的表格處理庫,能夠通過流式編程技術快速處理Excel和CSV格式的表格文件。通過本文的介紹,我們可以了解到xlsxnpm的安裝和使用方法,以及簡單的表格處理方法。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/188711.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-28 13:32
下一篇 2024-11-28 13:32

相關推薦

  • 使用Treeview顯示錶格

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

    編程 2025-04-29
  • Python根據表格數據生成折線圖

    本文將介紹如何使用Python根據表格數據生成折線圖。折線圖是一種常見的數據可視化圖表形式,可以用來展示數據的趨勢和變化。Python是一種流行的編程語言,其強大的數據分析和可視化…

    編程 2025-04-29
  • Python 圖片轉表格

    本文將詳細介紹如何使用Python將圖片轉為表格。大家平時在處理一些資料的時候難免會遇到圖片轉表格的需求。比如從PDF文檔中提取表格等場景。當然,這個功能也可以通過手動複製、粘貼,…

    編程 2025-04-29
  • Python教學圈:優秀教學資源都在這裡

    Python是一門優秀、易學、易用的編程語言,越來越多人開始學習和使用它,Python教學圈的重要性也越來越大。Python教學圈提供了許多優秀的教學和學習資源,為初學者和專業開發…

    編程 2025-04-29
  • python爬取網頁並生成表格

    本文將從以下幾個方面詳細介紹如何使用Python爬取網頁數據並生成表格: 一、獲取網頁數據 獲取網頁數據的一般思路是通過HTTP請求獲取網頁內容,最常用的方式是使用Python庫r…

    編程 2025-04-28
  • 優秀周記1000字的撰寫思路與技巧

    優秀周記是每個編程開發工程師記錄自己工作生活的最佳方式之一。本篇文章將從周記的重要性、撰寫思路、撰寫技巧以及周記的示例代碼等角度進行闡述。 一、周記的重要性 作為一名編程開發工程師…

    編程 2025-04-28
  • Python如何做表格為中心

    本文將從多個方面詳細闡述Python如何做表格,包括表格的創建、數據的插入、表格的樣式設置等內容。 一、創建表格 要在Python中創建表格,我們可以使用第三方庫Pandas。具體…

    編程 2025-04-28
  • 52周存錢法表格圖100元

    52周存錢法是一種有效的儲蓄方法,它能夠幫助人們規律性地儲蓄並實現財務目標。針對這種儲蓄方法,我們可以使用表格來更加直觀地記錄儲蓄進度,並且可以通過代碼實現,給用戶提供更加便捷的服…

    編程 2025-04-27
  • ABCNet_v2——優秀的神經網絡模型

    ABCNet_v2是一個出色的神經網絡模型,它可以高效地完成許多複雜的任務,包括圖像識別、語言處理和機器翻譯等。它的性能比許多常規模型更加優越,已經被廣泛地應用於各種領域。 一、結…

    編程 2025-04-27
  • Prototypical Network: 一種優秀的few-shot學習算法

    機器學習中,few-shot學習已經成為了近年來的熱門研究方向。相較於傳統的機器學習算法,few-shot學習算法在訓練數據較少的情況下有着更好的表現。在目前的few-shot學習…

    編程 2025-04-25

發表回復

登錄後才能評論