nodejs 使用xlsx包读取文件流binary并已utf8格式输出的示例
时间: 2023-09-17 16:12:48 浏览: 235
下面是一个使用 xlsx 包读取二进制文件流并以 UTF-8 格式输出的示例:
```javascript
const XLSX = require('xlsx');
const fs = require('fs');
const filePath = './example.xlsx'; // 文件路径
const fileData = fs.readFileSync(filePath); // 读取文件数据
const workbook = XLSX.read(fileData, { type: 'buffer' }); // 将文件数据转换为 workbook 对象
const worksheet = workbook.Sheets[workbook.SheetNames[0]]; // 获取第一个 sheet 的数据
const sheetData = XLSX.utils.sheet_to_json(worksheet, { header: 1 }); // 将 sheet 转换为 JSON 数组
console.log(sheetData); // 输出 sheet 数据
```
在上面的示例中,我们首先使用 `fs.readFileSync()` 方法读取文件数据,然后使用 `XLSX.read()` 方法将文件数据转换为 workbook 对象。接着,我们从 workbook 中获取第一个 sheet 的数据,并使用 `XLSX.utils.sheet_to_json()` 方法将 sheet 转换为 JSON 数组。最后,我们将 sheet 数据以 UTF-8 格式输出到控制台。
需要注意的是,上面的示例中使用的是 `fs.readFileSync()` 方法来读取文件数据,这意味着程序会一直等待,直到文件读取完成。如果需要异步读取文件数据,可以使用 `fs.readFile()` 方法。
阅读全文