JavaScript SheetJS将 Html 表转换为 Excel 文件

JavaScript SheetJS将 Html 表转换为 Excel 文件在本教程中,我们可以在客户端从我们的HTML表数据创建一个excel文件。即使用javascript将HTML表导出到Excel(.xlsx)。有许多可用的库可以从HTML表创建CSV文件或xlsx文件,但所有库都给出了提示消息。那就是当我们打开该excel文件时,它会提示一条消息,文件名的文件格式和扩展名不匹配。该文件可能已损坏或不安全。今天这篇文章将使用SheetJS,它允许我们在没有任何提示信息的情况下创建和打开excel文件,这是纯javascript的。使用..

大家好,又见面了,我是你们的朋友全栈君。

在本教程中,我们可以在客户端从我们的 HTML 表数据创建一个 excel 文件。即使用javascript将HTML 表导出到Excel (.xlsx)。

有许多可用的库可以从 HTML 表创建 CSV 文件或 xlsx 文件,但所有库都给出了提示消息。那就是当我们打开该excel文件时,它会提示一条消息,文件名的文件格式和扩展名不匹配。该文件可能已损坏或不安全。 

今天这篇文章将使用SheetJS,它允许我们在没有任何提示信息的情况下创建和打开excel文件,这是纯javascript的。

使用 SheetJs 库的第二个优点是它可以轻松地将大型 HTML 表格导出到 excel中,下面提供了一个示例。

您还可以查看我关于如何在客户端 将 HTML 转换为图像的文章。

使用 JavaScript 将 HTML 表格导出到 Excel 的步骤

  1. HTML 标记:添加带有一些数据的表格。
  2. 导入 SheetJS 库
  3. Javascript 代码:使用 SheetJS 库将表格数据导出到 excel 文件中。

HTML 标记:添加带有数据和按钮标记的表格。

这里首先我们添加一个带有一些虚拟数据和一个按钮标签的 HTML 表格。我们的表格 HTML 标记如下所示。

<table id="tbl_exporttable_to_xls" border="1">
	<thead>
		<th>Sr</th>
		<th>Name</th>
		<th>Location</th>
		<th>Job Profile</th>
	</thead>
	<tbody>
		<tr>
			<td>1</td>
			<td><p>Amit Sarna</p></td>
			<td>Florida</td>
			<td>Data Scientist</td>
		</tr>
		<tr>
			<td>2</td>
			<td><p>Sagar Gada</p></td>
			<td>California</td>
			<td>Sr FullStack Dev</td>
		</tr>
		<tr>
			<td>3</td>
			<td><p>Ricky Marck</p></td>
			<td>Nevada</td>
			<td>Sr .Net Dev</td>
		</tr>           
	</tbody>
</table>
<button onclick="ExportToExcel('xlsx')">Export table to excel</button>

在我们的网页上下载并导入 SheetJS 库

要将 HTML 表格数据转换为 excel,我们需要使用SheetJS库。使用 SheetJs,我们可以轻松地将表格数据转换为 Xls 文件。我们可以从Github下载 js 文件或直接使用CDN 托管文件

导入库代码如下:

<script type="text/javascript" src="https://unpkg.com/xlsx@0.15.1/dist/xlsx.full.min.js"></script>

我们完成了 HTML 标记并导入 Sheetjs 库。接下来,我们必须在按钮单击时添加和调用 javascript 函数,即 ExportToExcel。

JavaScript 代码:使用 Sheetjs 库将表格数据导出到 excel 文件中。

这里在按钮标签上,我们添加一个onclick事件,调用js方法即ExportToExcel。最终的javascript方法如下所示:

function ExportToExcel(type, fn, dl) {
       var elt = document.getElementById('tbl_exporttable_to_xls');
       var wb = XLSX.utils.table_to_book(elt, { sheet: "sheet1" });
       return dl ?
         XLSX.write(wb, { bookType: type, bookSST: true, type: 'base64' }):
         XLSX.writeFile(wb, fn || ('MySheetName.' + (type || 'xlsx')));
    }

在上面的 javascript 函数中,tbl_exporttable_to_xls 是我们要导出的 HTML 表的 id。另外,我们设置了base64类型,所以对于旧浏览器IE浏览器没有问题。

在 Internet Explorer 即使用 SheetJS 的浏览器中,我们可以轻松地将 HTML 表格数据导出到 Excel。使用 sheetjs库,我们可以将 Html 表格导出为带格式的 xlsx。

结论:这里使用SheetJS我们可以将Html表格导出到一个excel文件中。此外,当其他库在打开 excel 文件时显示弹出消息时,这里使用 Sheetjs 它会在没有任何弹出消息的情况下打开。我发现这个最好的 javascript 库用于将数据转换为 excel 文件。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160704.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • TransactionScope TransactionAbortedException

    TransactionScope TransactionAbortedException今天在调试代码的时候遇到一个这样的错误:System.Transactions.TransactionAbortedExceptionwascaughtHResult=-2146233087Message=Thetransactionhasaborted.Source=System.Transactions查了一下原因,主要是由于嵌套事务中,底层事务没有关闭,然…

    2022年7月19日
    15
  • 如何打开sln文件并显示窗口_在.sln文件中设置Visual Studio默认启动项目的简单方法…[通俗易懂]

    如何打开sln文件并显示窗口_在.sln文件中设置Visual Studio默认启动项目的简单方法…[通俗易懂]昨天在一台电脑上用git新签出一个项目进行build,却出现一堆编译错误,而在原先的开发机上build无任何错误。对比分析后发现,开发机上VS的启动项目(startupproject)与这台电脑上的不一样,改为一样后,build立马成功。看来问题与msbuild编译VS项目的顺序有关,而哪个项目作为启动项目会影响到这个编译顺序。要避免这个问题,就要保证git签出的VS解决方案的启动项目是一致的,…

    2022年6月9日
    89
  • centos7 apache 安装配置步骤[通俗易懂]

    centos7 apache 安装配置步骤[通俗易懂]1检查、删除、安装rpm-qa|grephttpd//检查是否安装apacherpm-e包名–nodeps//若有则删除PS:我没有删除,直接用的服务器原来的。yuminstallhttpd//安装,根据提示,输入Y即可安装成功2启动、测试systemctlstarthttpd//restart重启stop停止3查看 apache状…

    2022年9月16日
    0
  • MCMC采样_MCMC认证

    MCMC采样_MCMC认证MCMC(一)蒙特卡罗方法MCMC(二)马尔科夫链MCMC(三)MCMC采样和M-H采样MCMC(四)Gibbs采样在MCMC(三)MCMC采样和M-H采样中,我们讲到了M-H采样已经可以很好

    2022年8月5日
    6
  • k8s部署kafka集群「建议收藏」

    k8s部署kafka集群「建议收藏」k8s以StatefulSet方式部署kafka集群:kafka-namespace.yamlapiVersion:v1kind:Namespacemetadata:name:kafkazookeeper-headless.yamlapiVersion:v1kind:Servicemetadata:name:zk-hsnamespace:kafkalabels:app:zkspec:selector:app:zkp

    2022年5月30日
    37
  • java锁升级过程

    java锁升级过程java中对象锁有4种状态:(级别从低到高)1.无锁状态2.偏向锁状态3.轻量级锁状态4.重量级锁状态对象头分两部分信息,第一部分用于存储哈希码、GC分代年龄等,这部分数据被称为”MarkWord”。在32位的HotSpot虚拟机中对象未被锁定的状态下,MarkWord的32bit空间中的25bit用于存储对象哈希码,4bit用于存储对象分代年龄,2bit用于存储锁标志位,1bit固…

    2022年7月18日
    12

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号