javascript - XLSX 到 CSV 文件转换为 API 调用
问题描述
我试图在将 .xlsx 文件发送到 API 之前将其转换为 .csv 文件(因为它只接受 .csv 文件);
我正在使用包 xlsx 并且我得到了这个为我转换它的函数,但问题是这个函数会让用户下载文件,我不希望我只是希望它像一个对象一样保存它所以我只能将它用于 api(并且不要让用户知道它的转换)。
这是代码:
file.arrayBuffer().then(res => {
let data = new Uint8Array(res)
let workbook = XLSX.read(data, {type: "array"})
let first_sheet_name = workbook.SheetNames[0]
let worksheet = workbook.Sheets[first_sheet_name]
let jsonData = XLSX.utils.sheet_to_json(worksheet, {raw: false, defval: null})
let fileName;
if (file) {
fileName = file?.name.substring(0, file?.name?.indexOf("."))
}
let new_worksheet = XLSX.utils.json_to_sheet(jsonData);
let new_workbook = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(new_workbook, new_worksheet, "csv_sheet")
getRandomRows(jsonData)
XLSX.writeFile(new_workbook, fileName + ".csv")
})
想知道是否还有其他选择。
解决方案
我这样修复它:
let dataToSheet = XLSX.utils.json_to_sheet(data)
const dataFileCSV = XLSX.utils.sheet_to_csv(dataToSheet, {raw: false, defval: null});
let blob = new Blob(["\ufeff", dataFileCSV]);
let fileBlob = new File([blob], "name");
推荐阅读
- javascript - 为什么我不能在这个简单的函数中访问这个变量?
- mlflow - mlflow 嵌套运行的价值是什么?
- google-apps-script - 关于从电子表格附加 excel 文件列表的 Google 脚本
- visual-studio - 即使已启用,如何统一修复循环时间?
- sql - SQL Concat 并将日期转换为 MM/YYYY
- python - 将大括号解析为json?
- c - 如何根据传递给 tree_new() 的枚举类型组合一个 BST 或 RBT 的树 ADT?
- javascript - 关于散景自动加载脚本的令人困惑的说明
- azure-stream-analytics - 如何在输出消息到服务总线的流分析中设置 PartitionKey 属性?
- kubernetes - 如何将数据库连接传递到 Airflow KubernetesPodOperator