java 集成 pageoffice 实现在 word 中插入表格并赋值

in 编程
关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9

Word中的table操作需要借助数据区域(DataRegion)实现的,要求数据区域完整的包含了整个Table的内容,这样才可以通过数据区域控制和操作table。因此,要想使用table,则必须在word文件中插入书签。而table的插入,既可以在Word模版中书签处手动插入:工具栏“插入”→“表格”,亦可以在程序中通过数据区域动态添加。

下面介绍一下动态添加表格的具体步骤

1:给Word模板中创建一个书签。(两种方法)

(1)可以在word 模板中手动添加一个书签:工具栏“插入”→“书签”

 

(2)用 pageoffice 动态创建一个数据区域(书签)

2:插入表格

2:具体的代码

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page
	import="com.zhuozhengsoft.pageoffice.*,com.zhuozhengsoft.pageoffice.wordwriter.*"%>
<%
	PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
	WordDocument doc = new WordDocument();
	//在word中指定的"PO_table1"的数据区域内动态创建一个3行5列的表格
	Table table1 = doc.openDataRegion("PO_table").createTable(3,5,WdAutoFitBehavior.wdAutoFitWindow);
	//合并(1,1)到(3,1)的单元格并赋值
        table1.openCellRC(1,1).mergeTo(3,1);
        table1.openCellRC(1,1).setValue("合并后的单元格");
	//给表格table1中剩余的单元格赋值
	for(int i=1;i<4;i++){
	    table1.openCellRC(i, 2).setValue("AA" + String.valueOf(i));
            table1.openCellRC(i, 3).setValue("BB" + String.valueOf(i));
            table1.openCellRC(i, 4).setValue("CC" + String.valueOf(i));
	    table1.openCellRC(i, 5).setValue("DD" + String.valueOf(i));
	}
	
	//在"PO_table1"后面动态创建一个新的数据区域"PO_table2",用于创建新的一个5行5列的表格table2
	DataRegion drTable2= doc.createDataRegion("PO_table2", DataRegionInsertType.After, "PO_table1");
	Table table2=drTable2.createTable(5,5,WdAutoFitBehavior.wdAutoFitWindow);
	//给新表格table2赋值
	for(int i=1;i<6;i++){
	    table2.openCellRC(i, 1).setValue("AA" + String.valueOf(i));
	    table2.openCellRC(i, 2).setValue("BB" + String.valueOf(i));
            table2.openCellRC(i, 3).setValue("CC" + String.valueOf(i));
            table2.openCellRC(i, 4).setValue("DD" + String.valueOf(i));
	    table2.openCellRC(i, 5).setValue("EE" + String.valueOf(i));
	}
	
	poCtrl.setWriter(doc);//此行必须
	poCtrl.setServerPage(request.getContextPath()+"/poserver.zz");
	poCtrl.webOpen("doc/createTable.doc", OpenModeType.docNormalEdit,"张佚名");
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>

		<title>Word中动态创建表格</title>
		

	</head>

	<body>
		<div style="width: auto; height: 800px;">
			  <%=poCtrl.getHtmlCode("PageOfficeCtrl1")%>
		</div>
	</body>
</html>

最终效果

大家可以去pageoffice官网下载示例代码直接将samples4文件夹扔到Tomcat的webapps下,启动Tomcat,浏览器访问。

刚开始接触pageoffice的话,也可以看视频快速上手http://www.zhuozhengsoft.com/Technical/

 

关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9
扫一扫关注公众号添加购物返利助手,领红包
Comments are closed.

推荐使用阿里云服务器

超多优惠券

服务器最低一折,一年不到100!

朕已阅去看看