使用 JS-XLSX 處理 Excel 文件的行列數據 – 優質開發方案

一、JS-XLSX 簡介

JS-XLSX 是一個輕量級的 JavaScript 庫,用於讀取、解釋和生成 Microsoft Excel 文件(XLSX、XLSB、XLSM、XLS、ODS 格式)。
它可以在瀏覽器和 Node.js 模塊中使用,並支持 UTF-8、ASCII、UTF-16LE、UTF-16BE、UTF-16 和 ISO-8859-1 編碼。
JS-XLSX 由 SheetJS 維護,並且經過多次的測試和優化,它不僅功能強大,而且可以方便地與其他 JavaScript 庫和框架集成。

二、JS-XLSX 的安裝和使用

要在項目中使用 JS-XLSX,可以通過 npm 包管理器安裝它,也可以直接引入 JS-XLSX 庫文件。
下面是引入 JS-XLSX 庫文件的示例代碼:

// 引入 js-xlsx 庫文件



// 讀取 Excel 文件
const workbook = xlsx.readFile('example.xlsx', { type: 'binary' });
const worksheet = workbook.Sheets['Sheet1'];

// 將行列數據轉換為 JSON 格式
const data = xlsx.utils.sheet_to_json(worksheet, { header: 1 });

以上代碼中,我們首先引入了 JS-XLSX 庫文件,然後使用 xlsx.readFile 方法讀取 Excel 文件,接着使用 xlsx.utils.sheet_to_json 方法將行列數據轉換為 JSON 格式。

三、讀取 Excel 文件的行列數據

讀取 Excel 文件的行列數據,是 JS-XLSX 最常用的功能之一。下面是讀取 Excel 文件的行列數據的示例代碼:

// 讀取 Excel 文件
const workbook = xlsx.readFile('example.xlsx', { type: 'binary' });
const worksheet = workbook.Sheets['Sheet1'];

// 獲取行列數據
const range = xlsx.utils.decode_range(worksheet['!ref']);
const header = [];
const data = [];

for (let C = range.s.c; C <= range.e.c; C++) {
  const address = xlsx.utils.encode_cell({ c: C, r: range.s.r });
  header.push(worksheet[address].v);
}

for (let R = range.s.r + 1; R <= range.e.r; R++) {
  const row = {};
  for (let C = range.s.c; C <= range.e.c; C++) {
    const address = xlsx.utils.encode_cell({ c: C, r: R });
    row[header[C]] = worksheet[address].v;
  }
  data.push(row);
}
console.log(header);
console.log(data);

以上代碼中,我們首先通過 xlsx.utils.decode_range 方法獲取 Excel 文件中所有數據範圍,然後遍歷所有行和列,通過 xlsx.utils.encode_cell 和 xlsx.utils.sheet_to_json 方法將行列數據轉換為 JSON 格式。

四、生成 Excel 文件的行列數據

JS-XLSX 也支持生成 Excel 文件的行列數據。下面是生成 Excel 文件的行列數據的示例代碼:

// 設置列頭和數據
const header = ['name', 'age', 'sex'];
const data = [['張三', 18, '男'], ['李四', 20, '女'], ['王五', 22, '男']];

// 創建工作簿和工作表
const workbook = xlsx.utils.book_new();
const worksheet = xlsx.utils.aoa_to_sheet([header, ...data]);

// 將工作表添加到工作簿中
xlsx.utils.book_append_sheet(workbook, worksheet, 'Sheet1');

// 保存 Excel 文件
const buf = xlsx.write(workbook, { bookType: 'xlsx', type: 'buffer' });
fs.writeFileSync('example.xlsx', buf);

以上代碼中,我們首先設置列頭和數據,然後通過 xlsx.utils.aoa_to_sheet 方法將它們轉換為工作表,接着用 xlsx.utils.book_append_sheet 方法將工作表添加到工作簿中,最後通過 xlsx.write 方法將工作簿寫入 Excel 文件。

五、JS-XLSX 的應用場景

JS-XLSX 可以在很多場景中使用,比如數據導入、數據導出、數據轉換、數據分析等。下面是一些常見的應用場景:

1、數據導入:有時候我們需要將 Excel 文件中的數據導入到數據庫或者其他應用程序中,這時可以使用 JS-XLSX 讀取 Excel 文件的行列數據,然後進行數據清洗和格式轉換,最後將數據插入到數據庫中。

2、數據導出:當我們需要將數據導出到 Excel 文件中時,可以使用 JS-XLSX 生成 Excel 文件的行列數據,並將數據寫入到 Excel 文件中,然後讓用戶下載導出的 Excel 文件。

3、數據轉換:有時候我們需要將 Excel 文件中的數據轉換成其他格式,比如 CSV、JSON、XML 等,這時可以使用 JS-XLSX 將 Excel 文件的行列數據轉換為其他格式。

4、數據分析:當我們需要對 Excel 文件中的數據進行分析和計算時,可以使用 JS-XLSX 讀取 Excel 文件的行列數據,並進行相應的數據分析和計算。

六、總結

本文主要介紹了使用 JS-XLSX 處理 Excel 文件的行列數據的優質開發方案。我們在各個方面詳細闡述了 JS-XLSX 的使用和應用場景,希望可以對讀者有所幫助。

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:24
下一篇 2024-12-12 12:24

相關推薦

發表回復

登錄後才能評論