Java向word中插入Excel文件对象

前言:

在word文件中,虽然也有表格。但是有时我们想要将Excel中表格的大量数据直接插入到word文档中,这就需要用到word的插入对象的功能,也就是直接将Excel文件当做对象插入到word中。

本地的word插入Excel操作很简单,就是直接插入—对象—选择相应的Excel文件即可。

943fd9967a03c29309734bb01144d892e9f.jpg

85a88e354fcbe3fb4543957f702684260e7.jpg

那么想要在线打开word文档的同时,将指定的Excel文档插入到指定的word文档的指定位置中,要怎么办呢?这需要开发者具备将activex控件集成到Java环境的能力。对于大部分Java开发工程师来说,仅仅解决单一的功能就要掌握activex控件,未免学习成本太大。

所以我们今天就要介绍一个中间件技术——pageoffice,此中间件技术已经将 在web系统操作office文档的大部分功能整合完毕,大家只需要关注自己web系统的业务逻辑即可,学习成本低,且功能很丰富。下面我们来实战用pageoffice实现一下在word中插入Excel对象的功能。

先看效果:

f3288488cc37cc230ad87134082bcc2395e.jpg

文档里面的Excel表格就是通过pageoffice插入到word文档里的Excel对象。 

 部署步骤(只需5步)

1.官网http://www.zhuozhengsoft.com/dowm/下载集成文件,引入jar包,配置web.xml

6a19b006feb1a2613605e8ed4390d9ac43e.jpg

去刚才下载的集成文件中找到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('Word.jsp' , 'width=1200px;height=800px;');">后台编程插入Excel文件到数据区域</a>

3.在父页面同级目录下创建一个名为Word.jsp的文件

<%@ page language="java"
	import="java.util.*,com.zhuozhengsoft.pageoffice.*,com.zhuozhengsoft.pageoffice.wordwriter.*"
	pageEncoding="utf-8"%>
<%
	//******************************卓正PageOffice组件的使用*******************************
	PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);
	poCtrl1.setServerPage(request.getContextPath()+"/poserver.zz"); //此行必须
	WordDocument worddoc = new WordDocument();
	//先在要插入word文件的位置手动插入书签,书签必须以“PO_”为前缀
	//给DataRegion赋值,值的形式为:"[word]word文件路径[/word]、[excel]excel文件路径[/excel]、[image]图片路径[/image]"
	DataRegion data1 = worddoc.openDataRegion("PO_p1");
	data1.setValue("[excel]1.xls[/excel]");
	
	poCtrl1.setWriter(worddoc);
	poCtrl1.webOpen("test.doc", OpenModeType.docNormalEdit, "张三");
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
		<title>后台编程插入excel文件到数据区域(企业版)</title>
 
	</head>
	<body>
		<div style="width: auto; height: 700px;">
		<!--**************   PageOffice 客户端代码开始    ************************-->
			<%=poCtrl1.getHtmlCode("PageOfficeCtrl1")%>
		<!--**************   PageOffice 客户端代码结束    ************************-->
		</div>
	</body>
</html>

4.新建文件

新建一个名为test.doc的word文件(如果新建的是docx文件就将第三步的poCtrl1.webOpen("test.doc", OpenModeType.docNormalEdit, "张三");代码改为poCtrl1.webOpen("test.docx", OpenModeType.docNormalEdit, "张三");

新建一个名为1.xls的Excel文件(如果新建的是xlsx文件就将第三步中的data1.setValue("[excel]1.xls[/excel]");代码改为data1.setValue("[excel]1.xlsx[/excel]");)

可以在1.xls文件中填写一些数据以供测试。

将新建的两个文件放在word.jsp同级目录下。

5.添加书签

打开项目中刚才放置进去的test.doc文件,在想要插入Excel文档对象的位置添加一个书签,名称必须PO_开头,比如我们设置为PO_p1

e60ed7cdb5aadc1cbbde3aa7a1bfdb43115.jpg

如果我们添加的书签名是PO_p2  那就将第三步中的代码 DataRegion data1 = worddoc.openDataRegion("PO_p1");改为DataRegion data1 = worddoc.openDataRegion("PO_p2");

然后启动项目直接访问aaa.jsp点击链接.此时会提示安装插件,点击安装成功后提示注册,填写相关信息,填写注册Q37LN-W8NI-KFSQ-LEY3Y就可以打开文档.
注意:如果需要更丰富的功能,大家可以去pageoffice官网下载示例代码直接将samples4文件夹扔到Tomcat的webapps下,启动Tomcat,浏览器访问http://localhost:8080/Samples4/index.html,查看示例中的下面一个链接,直接看samples4文件夹下WordResExcel文件夹里面的代码.
33dd511aac1f8409c9665ff1357fddea224.jpg

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

97c1ff837a87a1ce418f828f483cb944899.jpg

转载于:https://my.oschina.net/u/4134214/blog/3067236

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在JavaWord文档插入图片,可以使用Apache POI库来实现。下面是一个示例代码,演示如何向Word文档插入图片: ```java import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph; import org.apache.poi.xwpf.usermodel.XWPFRun; import org.apache.poi.xwpf.usermodel.XWPFPicture; import org.apache.poi.xwpf.usermodel.XWPFPictureData; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.util.Units; public class InsertImageInWord { public static void main(String[] args) throws Exception { // 创建一个新的Word文档 XWPFDocument doc = new XWPFDocument(); // 创建一个段落 XWPFParagraph paragraph = doc.createParagraph(); // 创建一个图片运行对象 XWPFRun run = paragraph.createRun(); // 加载图片文件 File imageFile = new File("image.png"); FileInputStream fis = new FileInputStream(imageFile); // 将图片插入Word文档 XWPFPicture picture = run.addPicture(fis, XWPFDocument.PICTURE_TYPE_PNG, imageFile.getName(), Units.toEMU(300), Units.toEMU(200)); // 获取图片对象 XWPFPictureData pictureData = picture.getPictureData(); System.out.println("Image width: " + picture.getWidth() + "px, height: " + picture.getHeight() + "px"); // 保存Word文档 FileOutputStream fos = new FileOutputStream("output.docx"); doc.write(fos); fos.close(); doc.close(); } } ``` 在该示例,我们首先创建了一个新的Word文档对象`XWPFDocument`,然后创建了一个段落对象`XWPFParagraph`和一个图片运行对象`XWPFRun`。接着,我们加载了一个图片文件,并调用`addPicture`方法将图片插入Word文档。最后,我们保存了该Word文档文件。 需要注意的是,`addPicture`方法的第四个参数指定了图片的宽度,第五个参数指定了图片的高度,这里我们将图片宽度设置为300像素,高度设置为200像素。另外,`addPicture`方法返回的是一个`XWPFPicture`对象,我们可以通过该对象获取图片的宽度和高度等信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值