网上流传了大量大量的如何导出,结果都不太实用。
网上流传通用的js导出word代码如下:
function method1(){
var oWD = new ActiveXObject("Word.Application");
oWD.WindowState = 2;
var oDC = oWD.Documents.Add("",0,1);
var oRange =oDC.Range(0,1);
var sel = document.body.createTextRange();
sel.moveToElementText(huahai); //里面参数为div的id或者form的id或者table的id或者...表示将此范围内输出word
sel.select();
sel.execCommand("Copy");
oRange.Paste();
oWD.Application.Visible = true;
}
<body>
<div id="huahai">
</div>
</body>
<input type="button" onclick="javascript:method1();" value="导出为WORD">
以上方法可导出任意jsp(包括图片)但是除了以下内容:
凡是让用户输入带有<input>或者<textarea>等等等标签输入框地方就不能导出成word了。
比如一个table(如下所示),如果使用上述办法就不能导出。
如果去掉<input>标签那么就可以导出,但是问题就是我就是要全部导出.......
<table id="table1">
<tr>
<td>姓名</td><td><input type="text" size="5"></td>
<td>年龄</td><td><input type="text" size="5"></td>
</tr>
<table>
解决办法:
下面给出一个JSP,里面包含div、form、table、image、以及各种<input>标签导出为word
<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<form action="" id="huahai" >
<div align="center">
<div align="center" id="div_content">
<h2>
<font color="red">测试导出word</font>
</h2>
<h4>
<font color="red">测试导出word</font>
</h4>
</div>
<table id="table1">
<tr>
<td>姓名</td><td><input type="text" size="5"></td>
<td>年龄</td><td><input type="text" size="5"></td>
</tr>
<table>
<div id="img">
<hr/>
<img src="MM.jpg" height="45%" width="30%">
</br>
</div>
<div id="text_area">
<textarea name="warn_task" wrap="off" cols="80" rows="12">区域内容:</textarea>
</textarea>
<hr />
</div>
<input type="button" onclick="javascript:test();" value="测试">
</div>
</form>
</body>
</html>
下面给出js代码(加入<head>标签之间):
<script type="text/javascript">
var oWD = new ActiveXObject("Word.Application");
var oDC = oWD.Documents.Add("",0,1);
var oRange =oDC.Range(0,1);
function word(id,way){
var sel = document.body.createTextRange();
sel.moveToElementText(id);
sel.select();
sel.execCommand(way);
oRange.Paste();
}
function test(){
var table=document.getElementById('table1');
var table_cells = table.rows[0].cells;
var form_elements = document.getElementById('huahai');
word(div_content,'Copy'); //调用word函数,将div_content范围内容拷贝到word里面。
for(i=0;i<table_cells.length;i++){
oRange =oDC.Range(oRange.End-1,oRange.End); //设定位置依次由上往下、从左往右
var sel = document.body.createTextRange();
sel.moveToElementText(table_cells[i]); //将单元格内容复制到word
sel.select();
sel.execCommand("Copy");
sel.moveEnd('character'); //不加这句导出不了,里面参数为character、不是copy
oRange.Paste();
oRange =oDC.Range(oRange.End-1,oRange.End);
}
oRange =oDC.Range(oRange.End-1,oRange.End); //复制不同的东西,需要写这句继续 写死的这句话就是位置
var img = document.getElementById('img');
word(img,'Copy');//将img范围内容拷贝到word里面。
oRange =oDC.Range(oRange.End-1,oRange.End);
var text_area = document.getElementById('text_area');
word(text_area,'Copy');//将text_area范围内容拷贝到word里面。
oRange =oDC.Range(oRange.End-1,oRange.End);
oWD.Application.Visible = true; //这句意思是所有操作完毕后,在显示出来,如果写在里面,会发现word打开后,什么标签啊、内容啊就跟打字机一样往里面填
}
</script>
最后补充:IE工具设置,安全--启动-对没有标记为安全的Activex的控件进行初始化和脚本运行
分享到:
相关推荐
myeclipse中直接把jsp中table内容导出到word,一看就懂。
根据自己在实际的开发中总结的体会,希望帮助你解决导出WROID 或者EXCEL的问题,
这是个简单的jsp页面转word的简单例子
jsp导出word的几个技巧,都是实例来的,很好用。
jsp导出Excel;简单实用!导出Excel;导出Word jsp导出Excel;简单实用!导出Excel;导出Word jsp导出Excel;简单实用!导出Excel;导出Word
导出word从JSP哪里!
jsp 页面的Table中 导出 word
我们需要当jsp点击一个导出数据的按钮的时候,弹出一个对话框,实现数据导出;(其实变相的就是一个文件下载).
一简单的方法,可以看看,不支持图片
NULL 博文链接:https://ll-feng.iteye.com/blog/345873
POI例子,里面使用的Jquery ajax拿后台数据,然后导出成Excel文件,也可导出Word,PPT文件。
利用插件可以导出WORD文档,已经根据IE的特性新增了一个JS来支持IE8导出,页面中尽量用共通的CSS样式,引入类似bootstrap等UI框架WORD中不会识别样式
JSP数据导入导出EXCEL
关于jsp导出excel用javascript实现
一种很简单的将JSP页面的table导出excel的方法
jsp页面导出excel的实现相关代码,是从整个项目中把相关的几个页面拿出来分享一下
使用JSP、Struts2和jquery实现简单查询,分页,导出到Excel并保存到本地计算机。(数据库相关内容在webroot下db文件夹内)
jsp-数据导出功能 图书管理系统 使用POI技术,excel数据导出
~~~~~~~~~ jsp页面导出到work文档。例子
本人试过了可以用,做jsp程序导出excel功能的可以参考下,下载后按照模版进行修改