html写table转换成excel并下载

getInfo() {

//text部分即html写的table表格,blob是生成文件类型,getExportInfo函数是下载导出

let text = `<!DOCTYPE html>
<html>
<head>
    <title>Table to Excel</title>
    <style>
        table, th, td {
            border: 1px solid black;
            border-collapse: collapse;
        }
        .h-50 {
            height: 50px; /* 设置单元格高度为50像素 */
            border: none;
            border-bottom: 1px solid black;
        }
        .h-100 {
            height: 100px; /* 设置单元格高度为100像素 */
            border: none;
         }
        .h-60 {
            height: 60px; /* 设置单元格高度为60像素 */
            border: none;
         }
         .border-nones {
         	border:none;
	border-left : 1px solid black;
         }
         .border-none {
         	border:none;
         }
        .h-60s {
         	 height: 60px; /* 设置单元格高度为60像素 */
           	 border: none;
                 border-left : 1px solid black;
         }
    </style>
</head>
<body>
    <table class="border-none">
         <colgroup>     //修改单元格的宽度
            <col style="width: 40px;">
            <col style="width: 60px;"> 
            <col style="width: 60px;"> 
            <col style="width: 90px;"> 
            <col style="width: 120px;"> 
            <col style="width: 120px;"> 
            <col style="width: 90px;"> 
            <col style="width: 90px;"> 
            <col style="width: 80px;"> 
            <col style="width: 40px;"> 
        </colgroup>
        <tbody>
	<tr>
	       <td colspan="10" class="border-none" style="font-size: 22px; font-weight: bold; height: 100px;  padding-left:60px;">附件1 </td>
	</tr>
	<tr>
	       <td colspan="10" class="border-none" style="font-size: 20px; font-weight: bold; text-align:center;">报告表 </td>
	</tr>
        	<tr>
	       <td colspan="6" class="border-none" style="height:50px; padding-left:60px;">填表日期:     年    月    日 </td>
	       <td colspan="4" class="border-none" style="height:50px; ">金额单位:元(列至角分)</td>
	</tr>
        </tbody>
        <thead>
            <tr>
                <th colspan="4">识别号</th>
                <td colspan="2"></td>
	            <th colspan="2">名称</th>
	            <td colspan="2"></td>
            </tr>
            <tr>
                <th colspan="4">开始日期</th>
	            <td colspan="2"></td>
                <th colspan="2">结束日期</th>
	            <td colspan="2"></td>
            </tr>
            <tr>
                <th>序号</th>
                <th>项目1</th>
                <th>项目2</th>
                <th>项目3</th>
                <th>项目4</th>
                <th>项目5</th>
                <th>项目6</th>
                <th>项目7</th>
                <th>项目8</th>
                <th>备注</th>
            </tr>
       </thead>
       <tbody>`
    for(let i=0;i<3;i++) {
        text +=`
	        <tr>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
	        </tr>`
     }     
     text +=`
            <tr>
                <td>合计</td>
                <td>-</td>
                <td>-</td>
                <td></td>
                <td>-</td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td>-</td>
	        </tr>
            <tr>
                <td colspan="10" class="h-100" style="border-left:1px solid black; border-right:1px solid black;">谨声明:本表是真实的填写。</td>
            </tr>
             <tr>
                <td colspan="5" class="h-60" style="border-left:1px solid black;"></td>
                <td colspan="5" class="h-60" style="border-right:1px solid black;">(签章):</td>
             </tr>
             <tr>
	<td colspan="7" class="h-50" style="border-left:1px solid black;"></td>
                <td colspan="3" class="h-50" style="border-right:1px solid black;"> 年      月      日</td>
            </tr>
             <tr>
                <td colspan="6" class="h-60"  style="border-left:1px solid black;">签字:</td>
	<td colspan="4" class="h-60s" style="border-right:1px solid black;">名称: </td>
             </tr>
             <tr>
                <td colspan="6" class="h-60" style="border-left:1px solid black;">号码:</td>
	<td colspan="4" rowspan="2" class="border-nones" style="border-right:1px solid black;">(章):</td>
             </tr>
              <tr>
                <td colspan="6" class="h-60" style="border-left:1px solid black;">签章: </td>
             </tr>
             <tr>
                <td colspan="6" class="h-60" style="border-bottom:1px solid black; border-left:1px solid black;">号码:</td>
	<td colspan="4" class="h-60s" style="border-bottom:1px solid black; border-right:1px solid black;">日期:     年     月     日</td>
             </tr>
       </tbody>
    </table>
</body>
</html> `

const blob = new Blob([`\ufeff` + text], {type: "application/vnd.ms-excel;charset=utf-8;",});

this.getExportInfo(blob, "报告表");

}
getExportInfo(blob,filename) {

  // 创建一个指向Blob的URL
  const url = URL.createObjectURL(blob);
  // 创建一个a元素,用于触发下载
  const a = document.createElement("a");
  a.href = url;
  a.download = filename;
  // 添加a元素到文档并模拟点击,然后移除
  document.body.appendChild(a);
  a.click();
  document.body.removeChild(a);
  // 清理URL对象
  URL.revokeObjectURL(url);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值