Java向word文档中填充数据

本文介绍PageOffice中间件的集成步骤,实现在线打开并动态填充Word文档数据。通过5步即可在Java项目中集成,适用于中大型OA系统。教程包含代码示例及视频资源。

前言:

对于中大型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>

  5.去桌面新建一个test.doc文件(如果新建的是test.docx文件,需要将第四步中的poCtrl1.webOpen代码的第一个参数改为"test.docx").打开文档随便编辑点内容,然后选中想要通过程序替换的文本,点击插入-书签,输入书签名为"PO_aaa"(与程序代码中的doc.openDataRegion("PO_aaa")相对应),点击添加,最后保存文件.别忘记把保存好的文件放在父页面同级目录

然后启动项目直接访问aaa.jsp点击链接.此时会提示安装插件,点击安装成功后提示注册,填写相关信息,填写注册码CA1XB-MF7Y-12ST-PSBP2就可以打开文档,并且同时也会看到刚刚后台的"张三"也被填充到word文档中.

  如果有更多的在线操作文档的需求,这里也有视频教程    
  http://www.zhuozhengsoft.com/Technical/

 

如有侵权,请联系小编

在特定技术场景中,如编程或算法设计中,控制线性阵列填充的深度通常是指对数组或列表中元素的嵌套层级进行操作。线性阵列一般指的是单一维度的结构,但如果问题涉及多维数组或嵌套列表,则可以通过递归或迭代的方式实现对特定深度的填充控制。 以下是一个使用 Python 的示例,展示如何通过递归函数控制嵌套列表中特定深度的填充: ```python def fill_array(depth, current_depth, value): """ 递归生成指定深度的嵌套列表,并在最内层填充指定值 :param depth: 目标嵌套深度 :param current_depth: 当前递归深度 :param value: 要填充的值 :return: 嵌套列表 """ if current_depth == depth: return value else: return [fill_array(depth, current_depth + 1, value)] # 示例:生成一个深度为3的嵌套列表,最内层填充数字42 nested_array = fill_array(depth=3, current_depth=1, value=42) print(nested_array) # 输出:[[[42]]] ``` 在上述代码中,`fill_array` 函数会递归调用自身,直到达到指定的 `depth` 深度,然后在最内层填充 `value`。通过调整 `depth` 参数,可以控制填充的深度。 此外,如果使用的是线性代数或数值计算库(如 NumPy),可以通过创建多维数组并指定轴(axis)来控制填充行为。例如: ```python import numpy as np # 创建一个形状为 (2, 3, 4) 的三维数组,所有元素初始化为 5 array_3d = np.full((2, 3, 4), 5) print(array_3d) # 仅填充第二个维度(索引为1)的所有元素 array_3d[:, 1, :] = 9 print(array_3d) ``` 在这个 NumPy 示例中,`np.full` 创建了一个指定形状的数组,并通过索引操作对特定维度进行填充。这种方式适用于需要对数据结构的特定维度进行精确控制的场景。 如果具体场景涉及 CAD 或几何建模中的线性阵列填充(如引用[2]和[3]中提到的 SolidWorks 功能),则可以通过设置阵列的参数(如方向、数量、间距)来控制填充的深度和范围。例如,在 SolidWorks 中,线性阵列功能允许用户定义两个方向的阵列属性,从而控制特征在模型中的分布深度和范围[^2][^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值