前言:
在OA系統中,有時我們需要在線打開文檔,文檔中免不了有word表格,並且我們希望能夠通過代碼對錶格單元格進行一些合併/賦值的的操作。這就需要我們學習微軟activex控件的使用了。但是這需要開發者具備將activex控件集成到Java環境的能力。對於大部分Java開發工程師來說,僅僅解決單一的功能就要掌握activex控件,未免學習成本太大。
所以我們今天就要介紹一箇中間件技術——pageoffice,此中間件技術已經將web系統中操作office文檔的大部分功能整合完畢,大家只需要關注自己web系統的業務邏輯即可,學習成本低,且功能很豐富。下面我們來實戰用pageoffice實現一下Java在線打開word文檔實現對錶格單元格的合併以及賦值的功能。
先看效果:
原始模板文件
代碼執行後在線打開的效果:
可以看到,表格的第一行的四列被合併,並且進行了賦值和改變字體樣式的操作。
部署步驟(只需5步)
1.官網http://www.zhuozhengsoft.com/dowm/下載集成文件,引入jar包,配置web.xml
去剛纔下載的集成文件中找到lib,將裏面的內容放在項目web-inf的lib中引入jar包,然後將web.xml的pageoffice配置引入到自己項目的wb.xml中
2.在父頁面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('Default.jsp' , 'width=1200px;height=800px;');">使用程序合併Word文件中表格的單元格並賦值</a>
3.在父頁面aaa.jsp同級目錄下創建一個名爲Default.jsp的文件
<%@ page language="java" import="java.util.*,java.awt.*"
pageEncoding="utf-8"%>
<%@page
import="com.zhuozhengsoft.pageoffice.*,com.zhuozhengsoft.pageoffice.wordwriter.*"%>
<%
WordDocument doc = new WordDocument();
DataRegion dataReg = doc.openDataRegion("PO_table");
Table table = dataReg.openTable(1);
//合併table中的單元格
table.openCellRC(1, 1).mergeTo(1, 4);
//給合併後的單元格賦值
table.openCellRC(1, 1).setValue("銷售情況表");
//設置單元格文本樣式
table.openCellRC(1, 1).getFont().setColor(Color.red);
table.openCellRC(1, 1).getFont().setSize(24);
table.openCellRC(1, 1).getFont().setName("楷體");
table.openCellRC(1, 1).getParagraphFormat().setAlignment(
WdParagraphAlignment.wdAlignParagraphCenter);
PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
poCtrl.setWriter(doc);
//設置服務器頁面
poCtrl.setServerPage(request.getContextPath()+"/poserver.zz");//此行必須
poCtrl.setCustomToolbar(false);
//設置文檔打開方式
poCtrl.webOpen("test.doc", OpenModeType.docNormalEdit, "張三");
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title></title>
<link href="images/csstg.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="content">
<div id="textcontent" style="width: 1000px; height: 800px;">
<!--************** 卓正 PageOffice組件 ************************-->
<%=poCtrl.getHtmlCode("PageOfficeCtrl1")%>
</div>
</div>
</body>
</html>
4.新建文件
新建一個名爲test.doc的word文件(如果新建的是docx文件就將第三步的poCtrl.webOpen("test.doc", OpenModeType.docNormalEdit, "張三");代碼改爲poCtrl.webOpen("test.docx", OpenModeType.docNormalEdit, "張三");
本地打開test.doc文件,新建一個5行4列的表格,然後進行保存。
將新建的test.doc文件放在項目Default.jsp同級目錄下。
然後啓動項目直接訪問aaa.jsp點擊鏈接.此時會提示安裝插件,點擊安裝成功後提示註冊,填寫相關信息,填寫註冊碼Q37LN-W8NI-KFSQ-LEY3Y就可以打開文檔.
注意:如果需要更豐富的功能,可以去pageoffice官網下載示例代碼直接將samples4文件夾拷貝到Tomcat的webapps下,啓動Tomcat,瀏覽器訪問http://localhost:8080/Samples4/index.html,查看示例中的下面一個鏈接,直接看samples4文件夾下MergeWordCell文件夾裏面的代碼.
剛開始接觸pageoffice的話,也可以看視頻快速上手http://www.zhuozhengsoft.com/Technical/
如有侵權,請聯繫博主