<!DOCTYPE html>
<html> <head>
<title>table2xls</title>
<meta charset="utf-8">
<style type="text/css">
body,
table {
font-size: 12px;
} table {
table-layout: fixed;
empty-cells: show;
border-collapse: collapse;
margin: 0 auto;
} td {
height: 30px;
} h1,
h2,
h3 {
font-size: 12px;
margin: 0;
padding: 0;
} .table {
border: 1px solid #cad9ea;
color: #666;
} .table th {
background-repeat: repeat-x;
height: 30px;
} .table td,
.table th {
border: 1px solid #cad9ea;
padding: 0 1em 0;
} .table tr.alter {
background-color: #f5fafe;
} div {
margin-top: 2rem;
}
</style>
</head> <body>
<div>
<table width="90%" class="table" id="table_outputXLS">
<tr>
<th> 学号 </th>
<th> 姓名 </th>
<th> 平时 </th>
<th> 期中 </th>
<th> 实验(践)</th>
<th> 其它 </th>
<th> 期末 </th>
<th> 总评 </th>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr class="alter">
<td>2</td>
<td>2</td>
<td>2</td>
<td>2</td>
<td>2</td>
<td>2</td>
<td>2</td>
<td>2</td>
</tr>
</table>
</div>
<div style="margin:2rem auto;width: 6rem;">
<button type="button" id="btn_outputXLS">导出</button>
</div>
</body> </html>
<script type="text/javascript">
//HTMLtable表格拷贝到EXCEL中(引用自:https://www.cnblogs.com/zhj-Acmen/p/7298936.html)
var idTmr; // 释放资源计时器 — IE
var fileName = "导出表格"; window.onload = function() {
$$('btn_outputXLS').addEventListener("click", function() {
outputXLS('table_outputXLS');
});
} // 表格导出到EXCEL中
function outputXLS(tableid) {
if ($$(tableid).rows.length > 2) {
if (getExplorer() == 'ie') {
//AllAreaExcel(tableid);
tableToXls_isIE(tableid);
} else {
tableToXls_notIE(tableid);
}
} else {
alter("表内有内容才能导出!");
}
}
// table 导出为 xls - IE,需要降低浏览器安全级别,成功率低
function tableToXls_isIE(tableid) {
var curTbl = $$(tableid);
var oXL = new ActiveXObject("Excel.Application");
//创建AX对象excel
var oWB = oXL.Workbooks.Add();
//获取workbook对象
var xlsheet = oWB.Worksheets(1);
//激活当前sheet
var sel = document.body.createTextRange();
sel.moveToElementText(curTbl);
//把表格中的内容移到TextRange中
sel.select;
//全选TextRange中内容
sel.execCommand("Copy");
//复制TextRange中内容
xlsheet.Paste();
//粘贴到活动的EXCEL中
oXL.Visible = true;
//设置excel可见属性
try {
var fname = oXL.Application.GetSaveAsFilename(fileName + ".xls", "Excel Spreadsheets (*.xls), *.xls");
} catch (e) {
print("导出错误:" + e);
} finally {
oWB.SaveAs(fname);
oWB.Close(savechanges = false);
//xls.visible = false;
oXL.Quit();
oXL = null;
//结束excel进程,退出完成
idTmr = window.setInterval("Cleanup();", 1);
}
} // table 导出为 xls - 非IE
function tableToXls_notIE(tableid) {
let uri = 'data:application/vnd.ms-excel;base64,';
let template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table>{table}</table></body></html>';
let base64 = function(s) { return window.btoa(unescape(encodeURIComponent(s))) };
let format = function(s, c) {
return s.replace(/{(\w+)}/g,
function(m, p) { return c[p]; })
}; // 导出
function outputHandler(name) {
let table = $$(tableid);
let ctx = { worksheet: name || 'Worksheet1', table: table.innerHTML };
let a = document.createElement("a");
a.href = uri + base64(format(template, ctx));
a.download = fileName;
a.click();
}; outputHandler();
} // 判断浏览器
function getExplorer() {
var explorer = window.navigator.userAgent;
//ie
if (explorer.indexOf("MSIE") >= 0) {
return 'ie';
}
//firefox
else if (explorer.indexOf("Firefox") >= 0) {
return 'Firefox';
}
//Chrome
else if (explorer.indexOf("Chrome") >= 0) {
return 'Chrome';
}
//Opera
else if (explorer.indexOf("Opera") >= 0) {
return 'Opera';
}
//Safari
else if (explorer.indexOf("Safari") >= 0) {
return 'Safari';
}
} // 释放资源 - IE
function Cleanup() {
window.clearInterval(idTmr);
CollectGarbage(); // IE 的一个特有属性,用于释放内存的
} // 工具函数 - 通过 id 获取元素
function $$(id) {
return document.getElementById(id);
}
</script>

copy大神的代码:https://www.cnblogs.com/nb08611033/p/8288042.html

html导出表格xls格式的更多相关文章

  1. 利用PHPExcel将数据导出到xls格式的excel文件

    在开发某地的经营许可证管理系统的时候需要将数据导出打excel文件,虽然一年前做某集团的ERP的时候用到过一次导入和导出,但是那时候太忙没时间写博客,一年过去了我也忘的差不多了,所以趁着今天将此次的使 ...

  2. 在ASP.NET Web Forms中使用页面导出伪xls Excel表格

    将数据导出为Excel表格是比较常见的需求,也有很多组件支持导出真正的Excel表格.由于Excel能打开HTML文件,并支持其中的table元素以及p之类的文本元素的显示,所以把.html扩展名改为 ...

  3. 使用Apache POI导出Excel小结--导出XLS格式文档

    使用Apache POI导出Excel小结 关于使用Apache POI导出Excel我大概会分三篇文章去写 使用Apache POI导出Excel小结--导出XLS格式文档 使用Apache POI ...

  4. 前端 vue/react 或者 js 导入/导出 xlsx/xls (带样式)表格的功能

    第一种导出表格的功能: yarn add xlsx script-loader file-saver xlsx-style 效果展示 xlsx-style的bug修复:node_module/xlsx ...

  5. MySQL数据库如何与EXCEL的XLS格式相互转换

    1 将SQL导出为EXCEL方法,有如下数据库(my_impa),里面有两张表 2 如果是EXCEL格式,一定要勾选"将字段名称放在首行",否则待会儿导入的时候就需要你手工新建字段 ...

  6. java将list<T>导出为xls文件

    一.action层 /** * 导出list */ @SuppressWarnings("unchecked") public void exportBatch() { reque ...

  7. qt技巧--使用html导出表格替代excel

            曾经为qt不能直接导出excel而困扰,后来经过深入了解,得知qt支持xml国际语言,html是xml的一种.html是做网页的,相信大家比较熟悉.所以使用html的<table ...

  8. 关于Java中excel表格导出的总结(Java程序导出模板和Java根据模板导出表格两种实现方式)

    导出excel通用模板(程序定义模板导出) 转载原文:https://www.jianshu.com/p/5c7b359a159c 如下代码,本方法主要用于程序定义模板格式,并导出文件.该方法将定义和 ...

  9. POI导入导出Excel(HSSF格式,User Model方式)

    1.POI说明 Apache POI是Apache软件基金会的开源代码库, POI提供对Microsoft Office格式档案读和写的功能. POI支持的格式: HSSF - 提供读写Microso ...

  10. Vue导出模板、使用前端js办法导出表格数据、导入表格前端读取表格数据、导入表格发送后端读取数据

    以下是几种用的较多的函数方法,可以参考使用. // 導出1 myExport() { // post請求文件寫法1 const url = 'http://XXXX/XXXX/XXXX/XXXX' c ...

随机推荐

  1. pytorch学习笔记(10)--完整的模型训练(待完善)

    一.神经网络训练 # file : train.py # time : 2022/8/11 上午10:03 # function : import torchvision.datasets from ...

  2. python调用golang代码

    一.调用步骤: 将go代码编译成so库 -> python中通过ctypes引用so库并指定需要调用的函数(同时可指定传入参数类型和返回值类型) -> 指定后按python使用函数方式调用 ...

  3. vue将地区以对象、数组的格式传给后端

    项目涉及到了一个地区筛选,同时省市区三级不进行关联,后端要求以对象包数组的格式传参,完整代码 1.先拿到接口返回的地区数据 对数据进行处理,拿到想要的格式 this.provinceOption =r ...

  4. Jenkins+Git+Gitlab+Ansible 持续集成和自动部署

  5. Java笔记_this关键字_HomeWork(1 - 4 题)

    第一题 /** * @ClassName HomeWork01 * @Description TODO * @Author Orange * @Date 2021/4/23 8:14 * @Versi ...

  6. Python扩展(pybind11混编)

    背景介绍pybind11是一个基于C++11标准的模版库. 与Boost.Python类似, pybind11主要着眼于创建C++代码的Python封装, 并为其提供了一套轻量级的解决方案. 安装与代 ...

  7. C# 字符串数组去重(去除数组中重复元素)

    1. 去重distinct()或者GroupBy(p => p).Select(p => p.Key),去重的对象都需要为数组,具体看代码 string itemfileids = &qu ...

  8. 如何理解JavaScript中常用的4种排序算法?

      如何理解JavaScript中常用的4种排序算法? 冒泡排序 冒泡排序是我们在编程算法中,算是比较常用的排序算法之一,在学习阶段,也是最需要接触理解的算法,所以我们放在第一个来学习. 算法介绍: ...

  9. Python游戏开发常用库

    PyWeek:编程挑战,主要是Python游戏开发方面的 PyGame:PyGame在优秀的SDL库之上添加了更多功能.允许使用python语言创建功能齐全的游戏和多媒体程序.具有高度的可移植性,几乎 ...

  10. 解决QtCreator运行程序报plugin xcb的错误

    解决方法:将对应项目的运行环境的LD_LIBRARY_PATH中的qt的库路径移到最前面,如下图: LD_LIBRARY_PATH可以指定查找共享库的路径,将qt的共享库移到前面,可以优先使用qt的库