使用 VXETable.readFile获取文件以及文件预览地址并将文件转换成文件流并打印出来
时间: 2023-12-14 09:37:14 浏览: 270
首先需要安装 `xlsx` 和 `file-saver` 两个依赖:
```bash
npm install xlsx file-saver --save
```
然后在代码中引入这两个依赖:
```javascript
import XLSX from 'xlsx'
import FileSaver from 'file-saver'
```
接下来就可以使用 `VXETable.readFile` 方法获取文件并转换成文件流了。示例代码如下:
```javascript
VXETable.readFile(file, {
type: 'arraybuffer'
}).then(response => {
const workbook = XLSX.read(response.data, { type: 'array' })
// 获取第一个工作表
const sheetName = workbook.SheetNames[0]
const worksheet = workbook.Sheets[sheetName]
// 将工作表转换成 JSON 数据
const jsonData = XLSX.utils.sheet_to_json(worksheet, { header: 1 })
// 打印转换后的 JSON 数据
console.log(jsonData)
// 获取文件预览地址并打印出来
const previewUrl = window.URL.createObjectURL(new Blob([response.data]))
console.log(previewUrl)
// 将文件转换成文件流并打印出来
const fileStream = new Blob([response.data], { type: 'application/octet-stream' })
console.log(fileStream)
})
```
其中,`file` 参数是从浏览器的 `input[type="file"]` 元素中获取到的文件对象,`response.data` 是文件的二进制数据。使用 `XLSX.read` 方法将二进制数据转换成工作簿对象,然后使用 `XLSX.utils.sheet_to_json` 方法将工作表转换成 JSON 数据。使用 `window.URL.createObjectURL` 方法获取文件预览地址,使用 `Blob` 对象将文件转换成文件流。
阅读全文