Java向word文件中填充資料
前言:
對於中大型OA系統來說,線上開啟word文件已經是一個常用需求。既然有線上操作word文件的需求,那就不可避免要有開啟文件時動態填充資料的需求。這篇文章就讓小編來介紹一箇中間件技術-pageoffice。
pageoffice對於word的功能做到了80%以上的封裝,而且api比較簡單容易上手。
推薦像小編一樣 只懂Java不懂VBA介面 不懂office程式呼叫的同學花10分鐘學習一下。
先看效果
這裡的“張三”和“銷售部”就是由Java後臺填充到word文件中的資料。
如何整合(複製貼上只需5步)
1.官網下載pageoffice(http://www.zhuozhengsoft.com/dowm/).
2.去剛才下載的整合檔案中找到lib,將裡面的內容放在專案web-inf的lib中引入jar包,然後將web.xml的pageoffice配置引入到自己專案的web.xml中。
3.在父頁面aaa.jsp(需要開啟文件的頁面)放一個a標籤或者button
寫a標籤之前先引入pageoffice需要的js檔案
<script type="text/javascript" src="/jquery.min.js"></script>
<script type="text/javascript" src="/pageoffice.js" id="po_js_main"></script>
然後新增a標籤
<a href="javascript:POBrowser.openWindowModeless('Word.jsp', 'width=1050px;height=900px;');">開啟文件並填充資料</a>
4.在父頁面同級目錄下建立一個Word.jsp檔案
<%@ page language="java"
import="java.util.*,com.zhuozhengsoft.pageoffice.*,com.zhuozhengsoft.pageoffice.wordwriter.*"
pageEncoding="utf-8"%>
<%
PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);
poCtrl1.setServerPage(request.getContextPath()+"/poserver.zz"); //此行必須
WordDocument doc = new WordDocument();
//開啟資料區域
DataRegion dataRegion1 = doc.openDataRegion("PO_aaa");
//給資料區域賦值
dataRegion1.setValue("張三");
poCtrl1.setWriter(doc);
//開啟Word檔案
poCtrl1.webOpen("test.doc", OpenModeType.docNormalEdit, "張三");
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>簡單的給Word文件中的資料區域賦值</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
<div style="width: auto; height: 700px;">
<%=poCtrl1.getHtmlCode("PageOfficeCtrl1")%>
</div>
</body>
</html>