关于@vue-office/excel 渲染异常滚动失去内容

关于@vue-office/excel 渲染异常滚动失去内容

javascript 复制代码
<template>
  <div class="w-full h-full min-h-[500px] relative bg-white">
    <div v-if="loading" class="absolute inset-0 flex items-center justify-center">
      <div class="flex flex-col items-center gap-3">
        <svg class="animate-spin h-8 w-8 text-[#f86c31]" viewBox="0 0 24 24">
          <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4" fill="none" />
          <path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z" />
        </svg>
        <span class="text-sm text-gray-500">加载中...</span>
      </div>
    </div>
    <div v-if="error" class="absolute inset-0 flex items-center justify-center">
      <div class="flex flex-col items-center gap-3 text-center">
        <div class="w-12 h-12 rounded-full bg-red-50 flex items-center justify-center">
          <svg class="w-6 h-6 text-red-500" fill="none" viewBox="0 0 24 24" stroke="currentColor">
            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" />
          </svg>
        </div>
        <p class="text-sm text-gray-600">{{ error }}</p>
      </div>
    </div>
    <Excel
      v-show="!error"
      :src="src"
      @rendered="handleRendered"
      @error="handleError"
    />
  </div>
</template>

<script setup lang="ts">
import { ref } from "vue";
import Excel from "@vue-office/excel";
import "@vue-office/excel/lib/v3/index.css";

const props = defineProps<{
  src: string;
}>();

const loading = ref(true);
const error = ref<string | null>(null);

function handleRendered() {
  loading.value = false;
}

function handleError(err: unknown) {
  loading.value = false;
  error.value = "Excel 表格加载失败,请检查文件是否存在或格式是否正确";
  console.error("Excel render error:", err);
}
</script>

<style scoped>


</style>

只需要加上Excel对应的样式即可 import "@vue-office/excel/lib/v3/index.css";

相关推荐
陈随易4 小时前
bm2,Node.js 与 Bun 项目部署新选择
前端·后端·程序员
福兮说5 小时前
canvas 旋转图片的六个坑:四角被裁、Math.ceil 多出 1px 黑边、JPG 角发黑、翻转方向反了
前端·javascript·图像处理·canvas
传人once7 小时前
多图片上传预览功能如何写
前端·css·html·jquery·html5
Eric.467 小时前
Wan‑Animate+MiniMax-H3 本地部署 AI 漫剧流水线:8G 显存动作迁移与动态分镜工程实战
前端·人工智能·comfyui·ai漫剧
库拉镜像AI牛牛8 小时前
短剧内容自动化生产:知漫剧工作室落地教程
大数据·服务器·前端·人工智能·语音识别
律宏阔8 小时前
Flutter 列表图片内存优化:CachedNetworkImage 与 ClipRRect 的取舍
前端·flutter
行者全栈架构师9 小时前
【鸿蒙心迹】相册文搜图工程化落地:HarmonyOS 7.0 端侧 AI 检索全链路实战与 5 个踩坑解法
前端
律宏阔9 小时前
Dart 3 Record:解决 Future.wait 异构返回值的类型问题
前端·flutter
Seraphina369 小时前
DVWA(XSS Reflected/Stored High,CSRF Low)
前端·xss·csrf
默_笙10 小时前
🍔 中间件不只是打日志:四个钩子、一次短路,和自带的工具
前端·javascript