当前位置: 首页 > news >正文

前端vue3获取excel二进制流在页面展示

excel二进制流在页面展示

  • 安装xlsx
  • 在页面中定义一个div来展示html数据
  • 定义二进制流请求接口
  • 拿到数据并展示

安装xlsx

npm install xlsx
import * as XLSX from 'xlsx';

在页面中定义一个div来展示html数据

 <div class="file-input" id="file-input" v-html="excelData"></div>

定义二进制流请求接口

export function getExcel(data: any) {return axios({url: 'xxx',method: 'post',responseType: 'blob',data,headers: {'Content-Type': 'application/json','Accept': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'}});
}

拿到数据并展示

const excelData = ref(null)const dealFile = () => {let params = {}getExcel(params).then(async (res: any) => {loading.value = falseconst blob = new Blob([res.data], {type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'})const arrayBuffer = await blob.arrayBuffer()const workbook = await XLSX.read(arrayBuffer, {type: 'array'})const sheetName = workbook.SheetNames[0]const worksheet = workbook.Sheets[sheetName]console.log('worksheet   ', worksheet)try {if (worksheet) {const html = XLSX.utils.sheet_to_html(worksheet, {header: `<style>.xlsx-table {border-collapse: collapse;width: 100%;margin: 1rem 0;box-shadow: 0 0 10px rgba(0,0,0,0.1);}.xlsx-table th, .xlsx-table td {border: 1px solid #e0e0e0;padding: 10px 12px;text-align: left;min-width: 150px;}.xlsx-table th {background-color: #f5f7fa;font-weight: 600;color: #333;min-width: 150px;}.xlsx-table tr:nth-child(even) {background-color: #f9f9f9;}.xlsx-table tr:hover {background-color: #f1f5f9;}</style>`})excelData.value = html.replace('<table', '<table class="xlsx-table"');} else {excelData.value = '<div style="text-align: center;height:200px;line-height: 200px">暂无数据</div>'}} catch (error) {excelData.value = '<div style="text-align: center;height:200px;line-height: 200px">暂无数据</div>'}})
}
http://www.dtcms.com/a/282792.html

相关文章:

  • 【unity知识点】已知发射的初始位置和目标位置,计算发射初速度,实现投掷物品或者弓箭手做抛体线运动精准的击中目标
  • C语言 --- 函数递归
  • Python编程基础(六)| 用户输入和while循环
  • 康华生物:以创新疫苗书写国产突围之路​​​
  • 李宏毅2025《机器学习》第七讲-推理模型:从原理、流派到未来挑战
  • 2025年自动化工程、物联网与计算机应用国际会议(AEITCA 2025)
  • 【时序数据库-iotdb】时序数据库iotdb的可视化客户端安装部署--dbeaver
  • 基于Spring AI Alibaba的智能知识助手系统:从零到一的RAG实战开发
  • 最细,Web自动化测试入门到精通整理,一套打通自动化测试...
  • ASP .NET Core 8集成Swagger全攻略
  • 从零开发足球比分APP:REST API与WebSocket的完美搭配
  • HAProxy简介及配置文件详解
  • ESP‑IDF 默认的连接流程是
  • 2_概要设计编写提示词_AI编程专用简化版
  • 快速开发汽车充电桩的屏幕驱动与语音提示方案
  • __is_constexpr(x)宏介绍---max()宏扩展
  • Linux 常用指令
  • 信而泰×DeepSeek:AI推理引擎驱动网络智能诊断迈向 “自愈”时代
  • Java基础语法补充v2
  • C# --- 单例类错误初始化 + 没有释放资源导致线程泄漏
  • The 2024 ICPC Asia Shenyang Regional Contest B. Magical Palette
  • Docker容器技术讲解
  • Liunx练习项目6-创建dns服务器
  • 主机安全---开源wazuh安装
  • 深入理解概率图模型:贝叶斯网络因子分解、d-分离与马尔可夫毯
  • 基于用户空间操作IIC接口调试云台电机
  • 7.16 Java基础 | 集合框架(上)
  • 微服务架构中实现跨服务的字段级权限统一控制
  • PyTorch深度学习框架入门案例实战
  • 第一章 【vue】基础(超详细)