首页 > 其他分享 >使用blob实现把网页的html内容导出成一个.xls的文件

使用blob实现把网页的html内容导出成一个.xls的文件

时间:2024-04-01 14:56:50浏览次数:37  
标签:vnd numberformat excel html blob ms xls

这种方式其实就是利用了.xls文件可以解析html文本的功能。本质上还是一个html文件只不过是将.html另存为.xls而已。

直接上代码:

<div id="finalSettlementDetail">
   <longterm-final-settlement ref="longterm-final-settlement"></longterm-final-settlement>
</div>

<template #footer>
    <el-button @click="exportFinalSettlementExcel" type="info">导出Excel</el-button>
</template>

这里我们导出子组件longterm-final-settlement的内容。子组件的内容如下:

   <table style="border: 0px solid #0094ff;">
        <tr style="border: 0px solid #0094ff;">
          <td colspan="22" style="border: 0px solid #0094ff;text-align: left">制表单位:xxxx</td>
          <td colspan="4" style="border: 0px solid #0094ff;text-align: right">编制时间:{{currentDate}}</td>
        </tr>
      </table>
      <table class="longterm-detail-table">
          <tr>
            <th colspan="3">单位:</th>
            <td colspan="9">{{supplierNameSelected}}</td>
            <th colspan="3">结算单号:</th>
            <td colspan="4">JS{{generateSerialNumber}}</td>
            <th colspan="3">总额(元):</th>
            <td colspan="4">{{totalSettlementAmountTaxInclusive.toFixed(2)}}</td>
          </tr>
.....

exportFinalSettlementExcel方法:

exportFinalSettlementExcel(){
      const html = "<style>td{border:1px black solid;vnd.ms-excel.numberformat:@}</style>" + $("#finalSettlementDetail").prop("outerHTML");
      const blob = new Blob([html], {type : 'application/vnd.ms-excel'});
      const url1=URL.createObjectURL(blob)
      const a = document.createElement('a');
      a.href = url1;
      a.download = '结算单.xls';
      a.click();
      URL.revokeObjectURL(url1);
    },

注意事项:

(1)、获取报表在页面上展示的html代码,记得要把css样式也拼接进去,不然导出的excel里面的table都是默认样式,边框为0。

(2)、还要加上vnd.ms-excel.numberformat:@,否则会出现0丢失的情况,比如0018486变成18486,01月06日变成1月6日

excel格式化

1)文本:vnd.ms-excel.numberformat:@
2)日期:vnd-ms-excel.numberformat:yyyy/mm/dd  vnd.ms-excel.numberformat:yyyy-MM-dd HH:mm:ss;
3)数字:vnd-ms-excel.numberformat:#,##0.00
4)货币:vnd-ms-excel.numberformat:$#,##0.00
5)百分比:vnd-ms-excel.numberformat:#0.00%

(3)、使用blob导出html文件时,如果是表格中的内容,则会显示在不同的单元格。如果表格外的内容,如表上面的制表单位和制表日期,则会出现制表单位和制表日期合并成一个单元格的情况,为了避免这种情况,可以将它们写入表格中,设置表格的边框为0即可。

 

标签:vnd,numberformat,excel,html,blob,ms,xls
From: https://www.cnblogs.com/zwh0910/p/18108391

相关文章

  • Python 爬虫html内存 re.findall 正则提取span
    前言全局说明爬虫html内存re.findall正则提取一、百度首页热搜(和百度原网页代码有修改)需求:提取内容文字。<ulclass="s-hotsearch-content"id="hotsearch-content-wrapper"><liclass="hotsearch-itemodd"data-index="0"><spanclass=&q......
  • Cursor:你的前端“超能力”助手,一句话搞定HTML、CSS、JS!
    一、简介Cursor,不仅仅是一个开发工具,更是你前端路上的“超级英雄”!它融合了GPT-4的AI智慧,能听懂你的“心声”,一键将你的创意转化为神奇的HTML、CSS和JavaScript代码。告别繁琐的编码工作,让Cursor成为你创意的翅膀,带你飞翔在前端的世界!链接:Cursor官网二、功能亮点1、一......
  • HTML链接标签
                    在HTML中,链接标签用于创建指向其他网页或资源的链接。这个标签是<a>,并且通常与href属性一起使用,来指定链接的目标地址。<ahref="https://www.example.com">这是一个链接到example.com的文本</a>target属性:用于指定链接打开的方式。targ......
  • 20day-HTML&CSS-1~24
    1,HTML定义是什么?HTML(超文本标记语言,HyperTextMarkupLanguage)定义是一种用于创建和设计网页的标准标记语言。它允许使用一系列预定义的标签(比如:段落、列表、表格等)来组织文本、图片、视频等多媒体内容,并用于描述网页的结构和呈现样式。浏览器会根据HTML代码来解析和渲......
  • 帝国cms自适应html5古诗词历史名句书籍文章资讯网站源码整站模板sinfo插件带采集会员
    (购买本专栏可免费下载栏目内所有资源不受限制,持续发布中,需要注意的是,本专栏为批量下载专用,并无法保证某款源码或者插件绝对可用,介意不要购买!购买本专栏住如有什么源码需要,可向博主私信,第二天即可发布!博主有几万资源)帝国cms自适应html5古诗词名句书籍文章资讯网站源码整站模板s......
  • [web]: HTML 测试模板
    [web]: HTML 测试模板    一、HTML 测试模板内容 <!DOCTYPEhtml><html><head><metacharset="utf-8"><title>测试模板</title><scriptsrc="https://code.jquery.com/jquery-3.7.1.min.js"></script&g......
  • Yii2-助手类(Html)
    Yii2-助手类(Html)引入命名空间useyii\helpers\Html;使用<?php//【一】表单:Html::beginForm(提交地址,提交方法,属性数组);?><?=Html::beginForm('','post',['id'=>'form','class'=>'form','data'=&g......
  • HTML多媒体标签
    <img>标签<imgsrc="image.jpg"alt="MyImage"width="100"height="100"title="xxx">src:指定图像的URL(地址),这是必需的属性,没有它图像无法显示。alt:提供图片无法显示时的替代文本width和height:设置图片的宽高,如果只设置其中一个,另一个会按比例缩放。title:提供关于图像的额......
  • 【HTML】HTML入门:构建网页的基础
    前言    HTML(HyperTextMarkupLanguage)是构建网页和应用的基础。它提供了一种结构化的方式来组织内容,使得网页设计师可以创建出丰富且具有交互性的网页。本指南将带你从零开始学习HTML,包括它的基本概念、常用标签、属性以及如何构建一个简单的网页。第一部分:HTML基......
  • HTML 编辑器
    ​ HTML编辑器是一种用于创建、编辑和预览HTML(超文本标记语言)代码的工具或应用程序。它提供了一个直观的界面,使用户能够轻松地编写和设计网页内容。本文主要介绍HTML常用编辑器(VisualStudioCode、SublimeText、Atom、Notepad++和Dreamweaver)。参考文档:HTML编辑器-CJava......