Java在线生成word excel 文档 -----Springmvc

此示例演示用 pageoffice 在线打开编辑保存office 办公文档javascript

须要用到的jar包(http://www.zhuozhengsoft.com/dowm/?v=4)下载试用程序包css

pageoffice4.5.0.4.jarjava

1.WEB.XMLjquery

<!-- PageOffice Begin -->
	<servlet>
		<servlet-name>poserver</servlet-name>
		<servlet-class>com.zhuozhengsoft.pageoffice.poserver.Server</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>poserver</servlet-name>
		<url-pattern>/poserver.zz</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>poserver</servlet-name>
		<url-pattern>/sealsetup.exe</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>poserver</servlet-name>
		<url-pattern>/posetup.exe</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>poserver</servlet-name>
		<url-pattern>/pageoffice.js</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>poserver</servlet-name>
		<url-pattern>/jquery.min.js</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>poserver</servlet-name>
		<url-pattern>/pobstyle.css</url-pattern>
	</servlet-mapping>
	<servlet>
		<servlet-name>adminseal</servlet-name>
		<servlet-class>com.zhuozhengsoft.pageoffice.poserver.AdminSeal</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>adminseal</servlet-name>
		<url-pattern>/adminseal.zz</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>adminseal</servlet-name>
		<url-pattern>/loginseal.zz</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>adminseal</servlet-name>
		<url-pattern>/sealimage.zz</url-pattern>
	</servlet-mapping>
	<mime-mapping>
		<extension>mht</extension>
		<mime-type>message/rfc822</mime-type>
	</mime-mapping>
	<context-param>
		<param-name>adminseal-password</param-name>
		<param-value>111111</param-value>
	</context-param>
	<!-- PageOffice End -->

	<servlet>
		<servlet-name>chapter2</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>/WEB-INF/spring-servlet.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>

	<servlet-mapping>
		<servlet-name>chapter2</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>

2:spring-servlet.xmlweb

<!-- 开始spring mvc的注解 -->
	<mvc:annotation-driven/>
	
	<!-- 这样根目录下面的resource的文件(.css,.js等)就不会被spring的DispatchServlet进行过滤 -->
	<mvc:resources location="/resources/" mapping="/resources/**"/>
	
	<!-- 配置注解扫描的包路径 -->
	<context:component-scan base-package="web"></context:component-scan>
	
	<!-- 配置action中返回的视图配置  -->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/"></property>
		<property name="suffix" value=".jsp"></property>
	</bean>

3:JSP页面spring

(1):index.jsp服务器

<div style="text-align: center;">
			<b>在线编辑保存Office文档</b>
			<br>
			<a
				href="javascript:POBrowser.openWindowModeless('open.do?type=word' , 'width=1200px;height=800px;');">在线编辑保存Word文档</a>
<br>
<a
				href="javascript:POBrowser.openWindowModeless('open.do?type=excel' , 'width=1200px;height=800px;');">在线编辑保存Word文档</a>

			<br>
		</div>

(2)WordOrExcel.jspmvc

<script type="text/javascript">
	function Save() {
		document.getElementById("PageOfficeCtrl1").WebSave();
		window.external.close();//关闭POBrowser窗口
	}
</script>
		<div style="width: 100%; height: 100%;">
			<%
				PageOfficeCtrl poCtrl = (PageOfficeCtrl) request
						.getAttribute("pageoffice");
			%>
			<%=poCtrl.getHtmlCode("PageOfficeCtrl1")%>
		</div>

4:后台代码app

打开文档代码less

@RequestMapping("open")
	public String openword(HttpServletRequest request,
			HttpServletResponse response) {
		String type = request.getParameter("type");
		PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
		// 设置服务器页面
		poCtrl.setServerPage(request.getContextPath() + "/poserver.zz");

		// 设置保存的action
		poCtrl.setSaveFilePage("savefile.do");

		// 设置打开的文档
		// 打开word
		if ("word".equals(type)) {
			poCtrl.webOpen("doc/test.doc", OpenModeType.docAdmin, "张三");
		}
		if ("excel".equals(type)) {
			poCtrl.webOpen("doc/test.xls", OpenModeType.docAdmin, "张三");
		}
		request.setAttribute("pageoffice", poCtrl);
		return "WordOrExcel";
	}

保存代码

@RequestMapping("savefile")
	 public  void  savefile(HttpServletRequest request, HttpServletResponse response){
		FileSaver fs = new FileSaver(request, response);
		fs.saveToFile(request.getSession().getServletContext().getRealPath("doc/") + "/" + fs.getFileName());
		fs.close();
	}

 

 

最后打开文档的效果

 

 

打开文档的时候须要注册,这是一个试用的序列号

IMTG6-BSXJ-JGZ6-3BIWM