vue3 预览excel文件

news/2024/11/30 3:33:24/
 <el-dialogv-model="viewDialog"title="预览文件"custom-class="dialogCommution"width="750px":close-on-click-modal="false"@close="handleClose"><div class="file-pre"><el-tabs v-model="activeName"  type="border-card"><el-tab-pane v-for="(item,index) in excelSheet" :key="index" :label="item.name" :name="item.name"><div class="table" v-html="item.innerHTML"></div></el-tab-pane></el-tabs></div></el-dialog>
// npm i xlsx@0.17.5
import XLSX from 'xlsx';const viewDialog = ref(false)
const excelSheet = ref([])
const activeName = ref('')
const downLoad = (item)=>{downloadLocal({fileId:item.id}).then(res => {const data = new Uint8Array(res);const workbook = XLSX.read(data, {type: 'array'});// 删除掉没有数据的sheetObject.values(workbook.Sheets).forEach((sheet, index) => {if (Object.keys(sheet).indexOf('!ref') === -1) {delete workbook.Sheets[workbook.SheetNames[index]];}});tableToHtml(workbook);})}const tableToHtml = (workbook) => {const sheetList = workbook.SheetNames.filter(v => v.indexOf('数据源') === -1);activeName.value = sheetList[0];sheetList.forEach(sheet => {const worksheet = workbook.Sheets[sheet];if (worksheet) {const innerHTML = XLSX.utils.sheet_to_html(worksheet);excelSheet.value.push({name: sheet,innerHTML: innerHTML});} else {excelSheet.value.push({name: sheet,innerHTML: '暂无数据',});}});viewDialog.value = true
}
// 关闭dialog 清除缓存
const handleClose = ()=>{excelSheet.value = []activeName.value = ''
}
请求需携带 {responseType:‘arraybuffer’}
const res = await axiosGet($api.safe.downloadLocal, params,{responseType:'arraybuffer'});async function axiosGet(url: string,params?: Record<string, any>,config?: AxiosRequestConfig
): Promise<any> {try {const res = await instance({method: "get",url,params,...config,});return res.data;} catch (err) {return Promise.reject(err);}
}
.file-pre {height: calc(100vh - 40px);padding: 20px;.table-html-wrap table {border-right: 1px solid #e8eaec;border-bottom: 1px solid #e8eaec;border-collapse: collapse;margin: auto;}.table-html-wrap table td {border-left: 1px solid #e8eaec;border-top: 1px solid #e8eaec;white-space: wrap;text-align: left;min-width: 100px;padding: 4px;}table {border-top: 1px solid #EBEEF5;border-left: 1px solid #EBEEF5;width: 100%;overflow: auto;tr {height: 44px;}td {min-width: 200px;max-width: 400px;padding: 4px 8px;border-right: 1px solid #EBEEF5;border-bottom: 1px solid #EBEEF5;}}.el-tabs--border-card > .el-tabs__content {overflow: auto;height: calc(100vh - 110px);}
}

http://www.ppmy.cn/news/487549.html

相关文章

C++操作Excel表格

我们这里使用开源的第三方库xlnt&#xff0c;环境是Windows&#xff0c;IDE是visual studio 环境配置就不再介绍了&#xff0c;我们这里是使用vcpkg直接的&#xff0c;你们可以也去GitHub下载自己编译 读xlsx文件并存入vector内 #include <iostream> #include <xlnt/…

系统自动化~02 Python操作EXC表格(入门)

系统自动化~02 Python操作EXC表格(入门) 上一期 系统自动化~01 Python入门 安装 pip install xlwt 初次使用 创建表格并添加数据 import xlwt # 创建工作表 wb xlwt.Workbook() na input("请输入工作簿名 : ") #选择工作薄 sh1 wb.add_sheet(na) lis int(in…

python如何打开excel表格_python怎么读取excel表格

OK,我们一起捋一捋,首先要新建或打开一个Excel文件,然后选择某个工作表,也就是上图中的sheet,最后读取或设置单元格的值。与此相对应的,在openpyxl中,有三个概念:Workbooks,Sheets,Cells。Workbook就是一个打开的excel文件,即excel工作簿;Sheet是工作簿中的一张表,…

java的exc,java 输入excel表格数据-你好! 请教你个问题 java web程序如何将读取的exc......

java中输入输出流如何把数据输出为Excel表格形式 实现代码如下 import org.apache.poi.hssf.usermodel.*; import java.io.FileOutputStream; import java.io.IOException; publicclass CreateCells { publicstaticvoid main(String[] args) throws IOException { HSSFWorkbook…

使用表格输出图片php,PHP表格生成图片

好文网为大家准备了关于PHP表格生成图片范文,好文网里面收集了五十多篇关于好PHP表格生成图片好文,希望可以帮助大家。更多关于PHP表格生成图片内容请关注好文网篇一:php导出excel表格最近因项目需要,需要开发一个模块,把系 好文网为大家准备了关于PHP表格生成的文章,好文网…

java封装表格,前台表格数据导成excel-我想用Java从数据库中取出数据,封装成表,再用exc......

java 将页面内容写入excel文件中并可以将其下载到... 如何将excel据提取到word文档解决方法如下&#xff1a; 1、复制法。即将原来的数据直接复制后&#xff0c;在word中进贴&#xff0c;这样数据就直接导入到word文档中了。 2、邮件合并法。在word中启用邮件合并&#xff0c;按…

Excel表格不小心删除怎么恢复,excel表格误删怎么找回

办公或学习中&#xff0c;我们经常会使用到表格来统计各种数据&#xff0c;有的时候&#xff0c;可能会不小心删除了这些重要的表格&#xff0c;Excel表格不小心删除怎么恢复&#xff1f;关于这个问题&#xff0c;本文会详细给大家介绍方法。 一、使用表格优势多 表格是我们在…

论信息系统项目的范围管理3.0(范文5)

论信息系统项目的范围管理3.0 【摘要】 ​ 2019年5月&#xff0c;我作为项目经理参与了xx省xx国有纺织企业销售erp信息系统的开发建设工作&#xff0c;该项目总投资180万元人民币&#xff0c;建设工期为6个月。通过该项目的建设&#xff0c;利用信息化技术手段&#xff0c;解…