jquery插件导出word:jquery.wordexport.js
前言
今天项目中遇到一个需求把我们系统中的统计数据导出来(主要是表格)。其实实现的的方法有很多,而此次针对我的系统第一获取数据有点慢,加上前不久写了一个在线阅读pdf,故此这次也想用前端的方式来导出。其实网上大致是两种一种是微软那种直接排除了,选择了运用第三方插件的方式。我用的jquery.wordexport.js导出的word,顺便尝试了一下jquery.table2excel.js导出Excel。顺便我的统计中也H5图表用的是echart。
导出word(jquery.wordexport.js)
此插件运用其实很简单,在这个过程当中主要遇到的就是系统中的样式没办法运用外联的方式。合并单元格rowspan我们系统中是用的display我需要把它移除。下面说过程。
1.js引用与实现
1.1.请按下方顺序引用不然是不能正常执行的依赖。
<script src="jqwordexport/jquery-1.11.1.js"></script> <script src="jqwordexport/FileSaver.js"></script> <script src="jqwordexport/jquery.wordexport.js"></script>
1.2.实现代码就更简单了。
$("#showDIV").wordExport(FineName)
一行代码就行FineName为文件名。
2.问题的解决

首先这是我页面上的内容,我需要把这个table放到showDIV中的一个div中;还要同时把这个table所在的div中不需要的删除。如下
var htmlstr = $("#HiddenDanger").html();//table所在div
$('#printWord').html(htmlstr);
$('#printWord div[data-role=pager]').remove();//把分页div删除
$('#showDIV script').remove();//div引用的js代码删除
然后导出,这样你会发现只有这个table,并且table为虚线,是不是也要把查询条件,导出内容加上去。
我把这些内容也同时加到了showDIV 中。如下
<div id="showDIV" >
<style>
#printWord table {
border: 1px solid #ddd;
border-collapse: collapse;
width: 95%;
margin: auto;
}
#printWord table tr td {
border: 1px solid #ddd;
}
#printWord table tr th {
border: 1px solid #ddd;
border-radius: 10px;
}
</style>
<h2 style="text-align: center;">
隐患等级数量统计
</h2>
<div style="text-align: right;margin-right: 50px; font-size: 16px;font-style: italic">
<span style="color: blue;">线路</span>:<span id="slineName"></span>
<span style="color: blue;">时间</span>:<span id="stm"></span>
</div>
<div id="printWord" />
</div>
是的通过进行动态复制查询条件,然后到处即可
function word() {
var stm = $('#tm').val()
var slineName = $("#line").data("kendoDropDownList").text();
var FineName = $('#line').text() + $('#tm').val() + '隐患等级数量统计';
$('#slineName').html(slineName);
$('#stm').html(stm);
$("#showDIV").wordExport(FineName)
}
以上基本的html表格就能正常到处了,不需要调用后台,代码书写也方便。

3.echart 导出
上面也说我们系统中还有图标这种方式直接到处会发现他会自动把echart生成table
暂时我用的网上的建议通过保存图片的方式进行img链接的方式进行导出了。如下:
3.1.先获取echart 图片流
//将charts保存为图片
function SaveChartsPic() {
//var chartExportUrl = '/lang/EchartTest/Export';
var picBase64Info = myChart.getDataURL();//获取echarts图的base64编码,为png格式。
$.ajax({
url: "/ReportForms/Export",
data: { base64Info: picBase64Info, fileType: 'png' },
type: "Post",
async: false,
dataType: "json",
success: function (data) {
//如果成功,记录图片的地址
) {
$('#img_Charts').attr('src', data.imgUrl);
}
//如果失败,弹出提示
else {
alert(data.Message);
}
},
})
}
3.2.c#进行保存图片
/// <summary>
/// 保存图片
/// </summary>
/// <param name="base64Info"></param>
/// <param name="fileType">保存的图片类型</param>
/// <returns></returns>
[HttpPost]
public ActionResult Export(string base64Info, string fileType)
{
Result result = new Result();
try
{
string[] arr = base64Info.Split(new string[] { "base64," }, StringSplitOptions.RemoveEmptyEntries);
]);
string path = AppDomain.CurrentDomain.BaseDirectory + chartsPath;
//string path = Server.MapPath("/Resoucrces/File/");
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
//确保图片名称的唯一性
Guid chartsID = Guid.NewGuid();
//string filename = DateTime.Now.ToFileTime() + "." + fileType;
string filename = chartsID + "." + fileType;
string savePath = path + filename;
FileStream fs = System.IO.File.Create(savePath);
fs.Write(byteArray, , byteArray.Length);
fs.Close();
result.code = ;
result.message = "保存图片成功";
result.imgUrl = savePath;
}
catch (Exception ex)
{
result.code = -;
result.message = "引发异常";
}
return Json(result, JsonRequestBehavior.AllowGet);
}
让后把图片对应的div放进导出div中调整样式即可进行导出
如图:

jquery插件导出word:jquery.wordexport.js的更多相关文章
- 转 jquery插件--241个jquery插件—jquery插件大全
241个jquery插件—jquery插件大全 jquery插件jqueryautocompleteajaxjavascriptcoldfusion jQuery由美国人John Resig创建,至今 ...
- 【jQuery插件】用jQuery Masonry快速构建一个pinterest网站布局(转)
[jQuery插件]用jQuery Masonry快速构建一个pinterest网站布局 时间:2011年03月21日作者:愚人码头查看次数:29,744 views评论次数:25条评论 前段时间领导 ...
- jquery插件导出excel和pdf(解决中文乱码问题)
参考文件:http://jackyrong.iteye.com/blog/2169683 https://my.oschina.net/aruan/blog/418980 https://segmen ...
- JQUERY插件学习之jQuery UI
jQuery UI:http://jqueryui.com/ jQuery UI介绍: jQuery UI 是以 jQuery 为基础的开源 JavaScript 网页用户界面代码库.包含底层用户交互 ...
- 自己动手开发jQuery插件全面解析 jquery插件开发方法
jQuery插件的开发包括两种: 一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法.jQuery的全局函数就是属于jQuery命名空间的函数,另一种是对象级 ...
- 网页内容导出word/excel的js代码
IE设置: 工具-> Internet选项-> 安全->自定义级别-> 对没有标记安全级别的ActiveX控件进行初始化 设为启用! 1.导出word //指定区域导出到Wo ...
- jQuery插件之上传文件ajaxfileupload.js源码与使用
在网页应用中,一般会用到上传文件或者图片什么的到服务器,那么可以用ajaxfileupload.js,但是在使用ajaxfileupload.js时候,当服务器返回的json带有&符号的时候, ...
- jQuery插件:图片放大镜--jQuery Zoom
本文转载于http://blog.csdn.net/xinhaozheng/article/details/4085644, 这是一款非常不错的给图片添加放大镜效果,可以应用在诸如zen cart,m ...
- 多日期选择jQuery插件 MultiDatesPicker for jQuery UI
Multiple-Dates-Picker-for-jQuery-UI是一个多日期选择的jquery控件. GIT源码: https://github.com/dubrox/Multiple-Da ...
随机推荐
- jquery.cookie.js 删除cookie
简单交代一下背景:asp.net页面的上的切换登录按钮的点击事件实现cookie的删除. 但是好像没办法直接删除,通过网上提供的方法,可以使用jquery.cookie.js 来操作cookie的创建 ...
- 【C#进阶】拥抱Lambda(一)
写在开头,好奇从这里开始(当时让加查询条件,结果竟然是一句话来发挥神奇作用): this.TestGrade = CriteriaHelper.NewObject<ITestCase, DtoT ...
- C#计算机性能参数
Process proc = Process.GetCurrentProcess(); //string info = "内存:" + (Environment.WorkingSe ...
- JVM内存回收区域+对象存活的判断+引用类型+垃圾回收线程
此文已由作者赵计刚薪授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 注意:本文主要参考自<深入理解Java虚拟机(第二版)> 说明:查看本文之前,推荐先知道JVM ...
- GCC升级问题解决:configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.,mpfr2.4.0
如果遇到类似问题: configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.,mpfr2.4.0 解决 ...
- Open GL的学习路程
一.EGL的使用 1.Dispaly与原生窗口的链接 -EGLDisplay eglGetDisplay -EGLBoolean egllinitialize 2.Surface 配置和创建sur ...
- 深入学习c++--左值引用和右值引用
#include <iostream> #include <string> #include <vector> using namespace std; int m ...
- 不再需要ImageOle或DynamicGifCtl,.NET实现IM编辑控件
多年前写过一篇文章<C# 实现IM聊天信息输入显示控件(1)-显示GIF动画图片>,主要是使用ActiveX控件实现RichTextBox插入gif动画图片,包括使用QQ的ImageOle ...
- xp——极限编程的几个方法
最近阅读<Head First Java>一书时,看到极限编程(XP)的概念,觉得很有趣,摘抄下来以备后期继续学习. 极限编程(XP)是一种新型的软件开发方法论.他的构想是结合了许多种&q ...
- 【xsy1230】 树(tree) 点分治+线段树
题目大意:有一棵$n$个节点的树,点的标号为$1$到$n$.树中的边有边权.给你$m$个询问,每个询问包含三个参数$l,r,pos$,你要求出标号在$l$到$r$之间的所有点中,到节点$pos$距离最 ...