前端页面HTML表格生成EXCEL下载

动态生成表格 1)document.write();直接将内容写入页面内容流。但是文档流执行完毕,会导致页面重绘。 2)element.innerHtml();将内容写入某个DOM节点,页面内容不会重绘 3)document.createElement();创建多个元素效率低点,但是结构清晰。... 阅读详情

前言

主要使用jquery插件工具table2excel来实现将HTML页面上的table表格生成Excel下载到客户端。(兼容IE和chrome浏览器)
由于功能比较简单,会使用jquery的相关工具就可以了;实现这个功能的方法还有很多,例如还可以使用jquery工具库的dataTable或者tableExport插件等等;本次只要说一下table2excel插件简单实现这个功能。
本次使用一种比较简单通用的方式:html表格通过js动态拼接成,只需将从后台请求过来的数据按照自己想要显示的格式在js里面动态生成之后再嵌入html页面的table中;通过页面的button点击即可下载成Excel表格。
还有一种方式,如果不想定制再html页面上生成的表格格式,也就是说格式排版固定那么几种的话;可以考虑更强大的jquery插件,如dataTable插件,功能高度灵活,可以将任何的html表格添加更高级的交互功能。

代码实现

一、html页面代码

<!doctype html>
<html lang="zh">
<head>
	<meta charset="UTF-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title></title>
	<link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.2.0/css/bootstrap.min.css">

</head>
<body>
	<header class="htmleaf-header">
		<h1 align="center">table2excel </h1>
		<div class="htmleaf-links">
		</div>
	</header>
	<section >
		<div class="container" style="padding:30px 0">
			<div class="row">
				<div class="md-col-8">
					<div class="table2excel" >
					  <table class="table table-striped table-bordered table-hover" id="table2html">
					  </table>
					</div>
				</div>
			</div>
			<button id="btn" class="btn btn-primary">生成excel</button>
		</div>
	</section>
	<script src="js/jquery-1.11.0.min.js"></script>
	<script src="dist/jquery.table2excel.js"></script>
	<script src="js/index.js"></script>
</body>
</html>

代码说明:
1.引用js文件,如下根据自己的存放的相对路径引入;jquery-1.11.0.min.js和jquery.table2excel.js为必要的插件js文件;index.js文件为本次自己写的js文件。

<script src="js/jquery-1.11.0.min.js"></script>
<script src="dist/jquery.table2excel.js"></script>
<script src="js/index.js"></script>

2.本次使用的bootstrap前端框架的css样式

<link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.2.0/css/bootstrap.min.css">

3.生成html表格样式的地方,再js文件中使用id值来生成html表格

 <table class="table table-striped table-bordered table-hover" id="table2html"> </table>

4.兼容性设置

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 

二、js代码(index.js文件,主要是生成html表格模板格式和数据)

/**
 * 拼接html格式,按照自己的需求格式拼接
 */
//初始化页面时执行的function
window.onload=function(){
	var sb='<tbody>';
	sb+='	<tr>';
	sb+='		<td style="color:#0087dc;background-color: white;border:solid 1px #dddddd;"';
	sb+='		align="center">';
	sb+='			线别';
	sb+='		</td>';
	sb+='		<td style="color:#0087dc;background-color: white;border:solid 1px #dddddd;"';
	sb+='		align="center">';
	sb+='			班别';
	sb+='		</td>';
	sb+='		<td style="color:#0087dc;background-color: white;border:solid 1px #dddddd;"';
	sb+='		align="center">';
	sb+='			产出工时(Mn)';
	sb+='		</td>';
	sb+='		<td style="color:#0087dc;background-color: white;border:solid 1px #dddddd;"';
	sb+='		align="center">';
	sb+='			总点数';
	sb+='		</td>';
	sb+='		<td style="color:#0087dc;background-color: white;border:solid 1px #dddddd;"';
	sb+='		align="center">';
	sb+='			总片数';
	sb+='		</td>';
	sb+='		<td colspan="3" style="color:#0087dc;background-color: white;border:solid 1px #dddddd;"';
	sb+='		align="center">';
	sb+='			延误时间';
	sb+='		</td>';
	sb+='		<td style="color:#0087dc;background-color: white;border:solid 1px #dddddd;"';
	sb+='		align="center">';
	sb+='			换线次数';
	sb+='		</td>';
	sb+='	</tr>';
	sb+='	<tr>';
	sb+='		<td style="color:#0087dc;background-color: white;border:solid 1px #dddddd;"';
	sb+='		align="center">';
	sb+='		</td>';
	sb+='		<td style="color:#0087dc;background-color: white;border:solid 1px #dddddd;"';
	sb+='		align="center">';
	sb+='		</td>';
	sb+='		<td style="color:#0087dc;background-color: white;border:solid 1px #dddddd;"';
	sb+='		align="center">';
	sb+='		</td>';
	sb+='		<td style="color:#0087dc;background-color: white;border:solid 1px #dddddd;"';
	sb+='		align="center">';
	sb+='		</td>';
	sb+='		<td style="color:#0087dc;background-color: white;border:solid 1px #dddddd;"';
	sb+='		align="center">';
	sb+='		</td>';
	sb+='		<td style="color:#0087dc;background-color: white;border:solid 1px #dddddd;"';
	sb+='		align="center">';
	sb+='			AI02';
	sb+='		</td>';
	sb+='		<td style="color:#0087dc;background-color: white;border:solid 1px #dddddd;"';
	sb+='		align="center">';
	sb+='			FC02';
	sb+='		</td>';
	sb+='		<td style="color:#0087dc;background-color: white;border:solid 1px #dddddd;"';
	sb+='		align="center">';
	sb+='			ME02';
	sb+='		</td>';
	sb+='		<td style="color:#0087dc;background-color: white;border:solid 1px #dddddd;"';
	sb+='		align="center">';
	sb+='		</td>';
	sb+='	</tr>';
	sb+='	<tr>';
	sb+='		<td style="border:solid 1px #dddddd;" align="center">';
	sb+='			DMLINE02';
	sb+='		</td>';
	sb+='		<td style="border:solid 1px #dddddd;" align="center">';
	sb+='		</td>';
	sb+='		<td style="border:solid 1px #dddddd;" align="center">';
	sb+='			400';
	sb+='		</td>';
	sb+='		<td style="border:solid 1px #dddddd;" align="center">';
	sb+='			2400';
	sb+='		</td>';
	sb+='		<td style="border:solid 1px #dddddd;" align="center">';
	sb+='			60';
	sb+='		</td>';
	sb+='		<td style="color:#0087dc;background-color: white;border:solid 1px #dddddd;"';
	sb+='		align="center">';
	sb+='		</td>';
	sb+='		<td style="color:#0087dc;background-color: white;border:solid 1px #dddddd;"';
	sb+='		align="center">';
	sb+='		</td>';
	sb+='		<td style="color:#0087dc;background-color: white;border:solid 1px #dddddd;"';
	sb+='		align="center">';
	sb+='		</td>';
	sb+='		<td style="border:solid 1px #dddddd;" align="center">';
	sb+='		</td>';
	sb+='	</tr>';
	sb+='	<tr>';
	sb+='		<td style="border:solid 1px #dddddd;" align="center">';
	sb+='			S11';
	sb+='		</td>';
	sb+='		<td style="border:solid 1px #dddddd;" align="center">';
	sb+='		</td>';
	sb+='		<td style="border:solid 1px #dddddd;" align="center">';
	sb+='			0';
	sb+='		</td>';
	sb+='		<td style="border:solid 1px #dddddd;" align="center">';
	sb+='			0';
	sb+='		</td>';
	sb+='		<td style="border:solid 1px #dddddd;" align="center">';
	sb+='			0';
	sb+='		</td>';
	sb+='		<td style="color:#0087dc;background-color: white;border:solid 1px #dddddd;"';
	sb+='		align="center">';
	sb+='		</td>';
	sb+='		<td style="color:#0087dc;background-color: white;border:solid 1px #dddddd;"';
	sb+='		align="center">';
	sb+='		</td>';
	sb+='		<td style="color:#0087dc;background-color: white;border:solid 1px #dddddd;"';
	sb+='		align="center">';
	sb+='		</td>';
	sb+='		<td style="border:solid 1px #dddddd;" align="center">';
	sb+='		</td>';
	sb+='	</tr>';
	sb+='	<tr>';
	sb+='		<td style="border:solid 1px #dddddd;" align="center">';
	sb+='			S11';
	sb+='		</td>';
	sb+='		<td style="border:solid 1px #dddddd;" align="center">';
	sb+='		</td>';
	sb+='		<td style="border:solid 1px #dddddd;" align="center">';
	sb+='			100';
	sb+='		</td>';
	sb+='		<td style="border:solid 1px #dddddd;" align="center">';
	sb+='			1600';
	sb+='		</td>';
	sb+='		<td style="border:solid 1px #dddddd;" align="center">';
	sb+='			20';
	sb+='		</td>';
	sb+='		<td style="color:#0087dc;background-color: white;border:solid 1px #dddddd;"';
	sb+='		align="center">';
	sb+='		</td>';
	sb+='		<td style="border:solid 1px #dddddd;" align="center">';
	sb+='			12';
	sb+='		</td>';
	sb+='		<td style="color:#0087dc;background-color: white;border:solid 1px #dddddd;"';
	sb+='		align="center">';
	sb+='		</td>';
	sb+='		<td style="border:solid 1px #dddddd;" align="center">';
	sb+='		</td>';
	sb+='	</tr>';
	sb+='</tbody>';
	$("#table2html").html(sb);
	$("#btn").click(function(){
		$("#table2html").table2excel({
			exclude: ".noExl",
			name: "Excel Document Name",
			filename: "myFileName",
			exclude_img: true,
			exclude_links: true,
			exclude_inputs: true
		});
	});
};

代码说明:
1.由于本次使用的是静态的资源生成html表格;一初始化页面就把静态资源加载在html页面生成表格数据;使用的是js初始化:window.function(){},还可以使用jquery初始化:$(document).ready(function(){});或者$(function(){})
还有js立即执行的函数表达式写法:(function(){})()和(function(){}()) ;如果不是静态资源,使用后台请求的回来的数据,可以
等待后台请求数据回来后再调用自己的function,在function里面往自己的html表格模板填充数据即可。

2.在html页面的table标签拼接html表格,记得table的id值

  $("#table2html").html(sb);

3.设置buttom点击触发事件,通过table 的id元素值生成excel并设置其属性值

	$("#btn").click(function(){
		$("#table2html").table2excel({
			exclude: ".noExl",//table里面,名为.noExl的class不包含生成excel范围内
			name: "Excel Document Name",
			filename: "myFileName",//生成的excel文件名称
			exclude_img: true,//把img标签过滤掉
			exclude_links: true,//把link标签过滤掉
			exclude_inputs: true//把input标签过滤掉
		});
	});

效果显示

1.页面显示,点击’生成excel’,生成文件如下:
在这里插入图片描述2.生成excel格式:
在这里插入图片描述
PS:生成的excel格式默认是.xlsx格式,可以通过修改table2excel.js源文件,修改生成的格式,本次我改成.xls格式

在 Vue3 + Element Plus 中生成动态表格,动态修改表格,多级表头,合并单元格 在 Vue 中,表格组件是使用频率及复杂度排名第一的组件,前端经常需要根据后台返回的数据动态渲染表格,比如动态表格如何生成,因为表格的列并不是固定的,在未知表格具体有哪些列的场景下,前端如何动态渲染表格数据。又或者需要把表格单元格进行合并处理,比如第一列是日期,需要把相同的日期进行合并,这样表格看起来会更加清晰。 本文手把手教你如何在 Vue3 + Element Plus 中创建表格、生成动态表格、创建动态多级表头、表格行合并、列合并等问题。如果你正在搭建后台管理工具,又不想处理前端问题,推荐使用卡拉云 阅读详情

相关推荐

web端导出excel数据供用户下载的方法。

有两种方法来实现这个功能。一种呢,是javascript直接将table导出到excel供用户下载 tableToExcel: (function () { var uri = 'data:application/vnd.ms-excel;base64,' , template = '{worksheet}{table}' ,

qq283426694的专栏 1290

html表格导出excel有几种方式

html表格导出excel有几种方式

终南有客-吾生也有涯,而知也无涯。 1万+

实现前端JavaScript导出HTML表格为Excel文件下载

随着互联网技术的飞速发展,JavaScript已经成为了前端开发的核心技术之一。本章将带您深入了解JavaScript在现代Web应用中的角色和重要性,并简要回顾其发展史,为您铺垫出一幅完整的前端技术图景。Blob对象代表了不可变的原始数据,它提供了一系列用于读取和操作数据的属性和方法。Blob可以用来处理二进制数据,包括图像、PDF文件、视频等。它允许我们创建或合并文件片段,并且可以被用作生成下载文件的基础。创建一个Blob对象非常简单,通过Blob。

weixin_35829279的博客 1082

根据所选的起始日期间隔,自动生成对应行数的表格,并且支持在第一行第一列的输入框内粘贴表格的数据

根据所选的起始日期间隔,自动生成对应行数的表格,并且支持在第一行第一列的输入框内粘贴表格的数据

qq_46266925的博客 969

前端实现表格数据导出为Excel指南

Blob对象代表不可变的类文件对象。它们可以被理解为包含有只读的原始数据的类文件对象。一个Blob对象通常表示一个二进制文件的内容,例如图片、视频或音频文件。Blob对象最常用于在Web应用中处理文件上传、下载和生成文件。Blob对象的主要特点包括:Blob对象由不可变的、原始数据组成。可以通过Blob对象的size属性获取其大小(以字节为单位)。Blob对象的类型可以通过type属性获取,这有助于识别文件的MIME类型。

weixin_42311427的博客 1023

实现HTML表格数据导出到Excel的完整教程

是一个专门用于在Web应用中将HTML表格数据导出为Excel文件的JavaScript库。通过它可以实现无插件导出为.xlsx格式文件,广泛适用于数据下载、报表导出等场景。Excel工作表对象模型是一个层次化结构,它包括:工作簿(Workbook):这是整个Excel文件的容器。工作表(Worksheet):工作簿中的单个工作表,用于存储和组织数据。单元格(Cell):工作表中的一个数据容器,可以包含文本、数字、公式等。

weixin_35987118的博客 1888

AI导出鸭|DeepSeek表格导出全攻略:从手动“修仙”到一键“封神”的效率革命

摘要:本文针对DeepSeek生成表格难以导出到办公软件的问题,提供了三种实用解决方案:1)通过Prompt指令让AI生成可直接下载的HTML/CSV格式;2)使用Python脚本调用API实现自动化处理;3)前端集成方案实现一键导出。文章还推荐了AI导出鸭浏览器插件作为终极解决方案,可一键完美转换格式。这些方法覆盖了从普通用户到开发者的不同需求,有效解决了AI生成表格的导出难题,大幅提升工作效率。(149字)

wujian8311的博客 1024

table-download:从页面以电子表格格式下载 HTML 表格

表格下载 此插件用于从网页下载 HTML 表格作为 XLS 文件。 从网站安装。 目的 将 HTML 表格下载为 XLS 文件 内容 安装 下载存储库并解压。 转到并将其加载为临时扩展 浏览器兼容性: 下一步是什么 去做 学分 Christian Kaindl使用 i18n API 翻译 HTML 页面 信息 Table Download由Arun编写和维护许可证:麻省理工学院

java easyui表格导出exceL,easyui导出Excel、Word java

问题描述:easyui datagrid导出Excel,使用java后台适用于多个页面解决方案:第一:在含有datagrid的界面exportPage.jsp中引用js(主要用于获取datagrid数据以及转换为html格式)代码为:第二:在exportPage.jsp的javascritp编辑中设置变量var grid='';var exportString='';并且在之间添加一个div,主要...

weixin_39521808的博客 549

电路方案分析(十二)USB Type-C PD 移动电源参考设计方案

TPD8S300为USB Type-C连接器的CC1,CC2,SBU1和SBU2引脚集成了四个通道的20v短到vbus和过压保护。TPD8S300集成了八个IEC61000-4-2ESD保护通道,用于USB Type-C连接器的CC1、CC2、SBU1、SBU2、DP_T (顶侧D-) 、DM_T (顶侧D-) 、DP_B (底侧D-) 引脚。当电源组是接收器并为其自身的电池充电时,该芯片会对电池充电,而在电源模式期间,该芯片充当DC-DC转换器以生成VBUS。

小幽余生不加糖 2万+

MindIE与vLLM-Ascend性能对决:Qwen3在昇腾910B上的推理效率实测

本文深度对比了昇腾910B平台上两大推理框架MindIE与vLLM-Ascend的性能表现。通过实测Qwen3系列模型,详细分析了二者在单卡、多卡场景下的推理效率、扩展性及生产环境适用性,为AI算力基础设施选型提供关键参考。

weixin_29214335的博客 1183

HTML5 前端将 dom 元素转化为 Word,EXCEL 或者图片 并实现下载

< 一 >word 1,依赖于 jquery.html.word.js插件 =>https://blog-static.cnblogs.com/files/lovling/jquery.html.word.js 2,该插件依赖于jquery,需要先引入jquery ,使用方式如下 <!DOCTYPE html> <html lang=...

weixin_30824277的博客 1240

金蝶ERP元数据解析:字段属性与表结构映射实战

本文深入解析金蝶ERP元数据的核心价值与应用实践,详细介绍了字段属性与表结构映射的关键技术。通过缓存获取与工具类直连两种方案对比,结合实际案例展示元数据在数据库校验、动态表单生成等场景的应用,帮助开发者高效解决二次开发中的常见问题。

weixin_33738555的博客 433

前端Table数据导出Excel使用HSSFWorkbook(Java)

一、实现原理: 1. 前端查询列表数据并渲染至table(<table>...</table>)表格 2. 表格html代码传输至后台 3. 后台把html转成Excel输出流返回前端 4. 前端自动调用下载器完成下载 注:因为渲染之后的hmtl代码数据量有可能很大,因此要使用POST方式的form表单方式提交。 二、实现步骤: 1. 查询后台数据...

weixin_34318326的博客 263

Altium Designer学习---如何进行SI仿真

Altium designer 如何进行SI仿真。         1、仿真电路中需要至少一块集成电路;             2、器件的IBIS模型;              3、在规则中必须设定电源网络和地网络;              4、建立SI规则约束;              5、层堆栈必须设置正确,电源平面必须连续;     建立的文件必须是一个工程,并把相应的文件放在工程目...

weixin_34050519的博客 4902

INCA文件刷写全流程:从ES581驱动安装到XCP协议实战(附避坑指南)

本文详细解析INCA文件刷写的全流程操作,从ES581驱动安装到XCP协议配置,提供实战经验与避坑指南。涵盖A2L文件校验、工作区优化、XCP参数调优及自动化刷写技巧,帮助工程师高效完成ECU开发中的文件刷写任务。

egg99的博客 942

前端导出excel表格

function exportExcelFile() { let tableData = $("#itemBankTable")[0];// 获取目标表格DOM对象 let sheet = XLSX.utils.table_to_sheet(tableData);// 将一个table对象转换成一个sheet对象 openDownloadDialog(sheet2blob(sh...

weixin_34302561的博客 406

数据结构课程设计--基于知识图谱的中医食疗数据管理与应用

【代码】数据结构课程设计--基于知识图谱的中医食疗数据管理与应用。

M_inherit的博客 565

将页面表格导出为excel并下载

将页面表格导出为excel并下载的方式有很多, 本次介绍的是表格div的下载。 这种方式很简单,不需要去创建excel文件,也不需要创建工作簿,然后一点一点的填写数据。只需要将页面的div中的表格下载。 js代码如下 function printExcle() { // 使用outerHTML属性获取整个table元素的HTML代码(包括&lt;table&gt;标签),然后包装成一个...

可行的code 8872

北斗导航:提高RTK定位精度的GIS应用

其中,RTK(Real-Time Kinematic)定位技术是一种实时差分定位技术,通过利用基准站的观测数据来对移动站的测量值进行差分处理,以提高定位精度。差分处理的关键是基准站的观测数据,基准站通过全球定位系统(如北斗导航系统)获取卫星信号并记录观测数据。通过使用RTK定位技术,结合北斗导航系统的观测数据和差分处理,可以实现高精度的定位结果。我们将介绍RTK定位的原理、使用北斗导航系统进行RTK定位的步骤,以及如何将定位结果与GIS数据进行集成和可视化展示。步骤1:设置基准站和移动站。

OvzStream的博客 475

OpenClaw Manager Pro - 可视化管理工具

OpenClaw Manager Pro 是一个现代化的 Web 管理界面,用于管理多个 OpenClaw Gateway 实例。🎨美观的界面:深色主题,渐变设计,现代化 UI📡实时监控:WebSocket 实时推送状态和日志🔧完整管理:创建、编辑、删除、启动、停止 Gateway📊多渠道支持:飞书、Telegram、Discord、Slack、微信、钉钉🧩技能管理:可视化配置 61+ 个技能🌍跨平台:支持 macOS、Linux、Windows使用自定义模型系统会自动在中创建},

Maynor的博客 3085

前端生成Excel 表格

下载页面 <meta name="description" content="User login page" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" /> <!-- 导出功能,前端+ 后台功...

qq_27300101的博客 1305

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

html 前端读excel,纯前端如何读取excel,如何生成excel?

下面我就以JavaScript为案例来展示,实现纯前端读取和导出excel文件。一、读取EXCEL读取excel主要是通过方法来实现,返回一个叫的对象,type主要取值如下:: 以base64方式读取;: BinaryString格式(byte n is data.charCodeAt(n)): UTF8编码的字符串;: nodejs Buffer;: Uint8Array,8位无符号数组;: 文...

weixin_33087827的博客 4134

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【免费下载】 Table to Excel 2:轻松将HTML表格导出为Excel文件

`Table to Excel 2` 是一个开源的JavaScript库,旨在帮助开发者轻松地将HTML表格导出为有效的Excel文件。无论是前端开发还是后端集成,`Table to Excel 2` 都能提供简单易用的API,让数据导出变得轻而易举。该项目基于 [exceljs/exceljs](https://github.com/exceljs/exceljs) 构建,确保生成的Excel文...

gitblog_00753的博客 2466

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【会员订阅系列1】html内实现点击下载.xls表格的功能(可控制条数)

想开发一个会员订阅与下载的功能,内容先由简入门,先实现前端html内点击下载。知识付费从文章到小说、从创意到程序、从音乐到影视等等,都需要前后端的订阅控制,所以我们必须了如指掌,并且一学就会。

miss688的博客 1756

html页面表格导出为excel表格实现 excel POI

/** * 下载文件,通过html页面直接将表导出 * * @param response * @param request * @param fileName * @param html * @throws Exception */ @RequestMapping(params = "downloadFile") public void downloadFile(HttpSe...

可爱的程序yuan 2079
上一篇: Oracle 常用SQL语句优化方式
下一篇: JDBC数据库驱动及原理
huahua.Dr
博客等级 码龄8年 87粉丝 68原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值