From c16e73db74cbdcec4f93c8f48078a4991db7ce5a Mon Sep 17 00:00:00 2001
From: buaixuexideshitongxue <2936013465@qq.com>
Date: Wed, 14 Jan 2026 15:40:02 +0800
Subject: [PATCH] =?UTF-8?q?xls=E4=B9=9F=E8=A6=81=E6=94=AF=E6=8C=81?=
=?UTF-8?q?=E5=9C=A8=E7=BA=BF=E9=A2=84=E8=A7=88?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
package.json | 3 +-
src/components/file/list.vue | 14 +++++++
src/components/file/xls-preview.vue | 63 +++++++++++++++++++++++++++++
3 files changed, 79 insertions(+), 1 deletion(-)
create mode 100644 src/components/file/xls-preview.vue
diff --git a/package.json b/package.json
index 94c2f5c..082e839 100644
--- a/package.json
+++ b/package.json
@@ -42,7 +42,8 @@
"vue-router": "^4.2.5",
"vue-video-player": "^6.0.0",
"vue3-print-nb": "^0.1.4",
- "webrtc-adapter": "^9.0.1"
+ "webrtc-adapter": "^9.0.1",
+ "xlsx": "^0.18.5"
},
"devDependencies": {
"@univerjs/vite-plugin": "^0.5.0",
diff --git a/src/components/file/list.vue b/src/components/file/list.vue
index dac519e..d7134a5 100644
--- a/src/components/file/list.vue
+++ b/src/components/file/list.vue
@@ -158,6 +158,19 @@
>
+
+
+
+
+import * as XLSX from 'xlsx'
+import { ref, onMounted } from 'vue'
+import { getToken } from '@/utils/token'
+
+const props = defineProps({
+ src: {
+ type: String,
+ required: true
+ }
+})
+
+const html = ref('')
+const loading = ref(true)
+
+onMounted(async () => {
+ try {
+ const res = await fetch(props.src, {
+ headers: {
+ Authorization: getToken()
+ }
+ })
+
+ const buffer = await res.arrayBuffer()
+ const workbook = XLSX.read(buffer, { type: 'array' })
+
+ const sheet = workbook.Sheets[workbook.SheetNames[0]]
+ html.value = XLSX.utils.sheet_to_html(sheet)
+ } catch (e) {
+ html.value = 'xls 文件解析失败,请下载查看
'
+ console.error(e)
+ } finally {
+ loading.value = false
+ }
+})
+
+
+
+
+
+
+