javascript - 如何将 blob 转换为 xlsx 或 csv?

标签 javascript csv dataset blob xlsx

具有文件下载选项的应用程序前端(可以采用以下格式:xlsx、csv、dat)。 为此,我使用 fileSaver.js

.dat/.csv 格式一切正常,但 .xlsx 格式无效,文件已损坏。

我测试了以下格式的转换:

  • utf8
  • base64
  • 二进制

这是我的做法:

// /* BACK */ //
// data is 
fs.readFile(filePath, (err, data) {...})

// the api give this answer the important part is "filename" & "data"
{"status":"ok","context":"writing the intermediate file","target":"/temp/","fileName":"name.xlsx","data":{"type":"Buffer","data":[72,82,65,67,67,69,83,83,32,10]}}
// /* FRONT */ //
let json = JSON.stringify(data)
let buffer = Buffer.from(JSON.parse(json).data)
let read = buffer.toString('utf8')
let blob = new Blob([read])
FileSaver.saveAs(blob, fileName)

最佳答案

@哈多克 如果您想下载扩展名为 .csv 的文件,则需要传递文件类型,如

let blob = new Blob([csv], { type: 'application/vnd.ms-excel' });

代替

let blob = new Blob([read])

并且不要忘记发送带有扩展名 (test.csv) 的文件名。

对于 excel 文件,我使用了不同的插件 exceljs demo .

关于javascript - 如何将 blob 转换为 xlsx 或 csv?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56682757/

相关文章:

javascript - 在 Cloud Functions for Firebase 中的链式 Promise 之间传递值

python - 将 CSV 上传到 Flask 进行后台处理

ruby - 迭代 Excel 工作簿并对所有内容建立索引?

dataset - 目前无法预览此资源。 - 康康

python - Python 中的 datasets.load_iris()

javascript - Meteor 从模态访问数据

javascript - jQuery div 在触发图像上移动时闪烁

java - 在 Tapestry 中等待下载准备就绪时显示颤动图像

c - 在 C 中解析 CSV 文件

C# WPF 组合框选择第一项