perf: csv导入导出

This commit is contained in:
archer
2023-04-10 20:39:27 +08:00
parent c1d3a46dc7
commit 2a597964a2
9 changed files with 66 additions and 34 deletions

View File

@@ -1,4 +1,5 @@
import mammoth from 'mammoth';
import Papa from 'papaparse';
/**
* 读取 txt 文件内容
@@ -97,13 +98,15 @@ export const readDocContent = (file: File) =>
*/
export const readCsvContent = async (file: File) => {
try {
const textArr = (await readTxtContent(file)).split('\n');
const header = textArr.shift()?.split(',');
if (!header) {
throw new Error('csv 格式错误');
const textArr = await readTxtContent(file);
const json = Papa.parse(textArr).data as string[][];
if (json.length === 0) {
throw new Error('csv 解析失败');
}
// 拆分每一行数据
const data = [];
return {
header: json.shift()?.filter((item) => item) as string[],
data: json.map((item) => item?.filter((item) => item))
};
} catch (error) {
return Promise.reject('解析 csv 文件失败');
}

View File

@@ -76,5 +76,5 @@ export const formatVector = (vector: number[]) => {
* 字符串清理,替换换行符号
*/
export const clearStrLineBreak = (str: string) => {
return str.replace(/\n/g, '\n').replace(/\n/g, '\\n').trim();
return str.replace(/\n+/g, '\n').replace(/\n/g, '\\n').trim();
};