diff --git a/.gitignore b/.gitignore index 47d255b6..11f5d714 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,6 @@ .DS_Store node_modules /dist -*.lock # local env files .env.local diff --git a/src/utils/clipboard.ts b/src/utils/clipboard.ts index 03ea1546..e8127181 100644 --- a/src/utils/clipboard.ts +++ b/src/utils/clipboard.ts @@ -53,29 +53,20 @@ export const pasteCustomClipboardString = (text: string) => { return clipboardData } -/** - * 检查粘贴元素是否为外部exlc表格类型 - * @param text - * @returns - */ -export const exlcTesting = (text: string): string[][] | boolean => { - // 判定一下是不是exl格式 - const lineList: string[] = text.split('\r\n') - // 按照\n拆分表格 最后会多出一个空字串 - if (lineList[lineList.length - 1] === '') { - lineList.splice(length - 1, 1) +// 尝试解析剪贴板内容是否为Excel表格(或类似的)数据格式 +export const pasteExcelClipboardString = (text: string): string[][] | boolean => { + const lines: string[] = text.split('\r\n') + + if (lines[lines.length - 1] === '') lines.pop() + + let colCount = -1 + const data: string[][] = [] + for (const index in lines) { + data[index] = lines[index].split('\t') + + if (data[index].length === 1) return false + if (colCount === -1) colCount = data[index].length + else if (colCount !== data[index].length) return false } - let tNum = -1 - const exlc: string[][] = [] - for (const index in lineList) { - exlc[index] = lineList[index].split('\t') - if (exlc[index].length === 1) return false - if (tNum === -1) { - tNum = exlc[index].length - } - else if (tNum !== exlc[index].length) { - return false - } - } - return exlc + return data } \ No newline at end of file diff --git a/src/views/components/element/TableElement/CustomTextarea.vue b/src/views/components/element/TableElement/CustomTextarea.vue index 03549501..081e21d2 100644 --- a/src/views/components/element/TableElement/CustomTextarea.vue +++ b/src/views/components/element/TableElement/CustomTextarea.vue @@ -12,7 +12,7 @@