`
妮子321
  • 浏览: 83899 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用PageOffice给Word中的Table赋值

阅读更多

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

一、给Word模板中的Table手动插入书签。

1. 把Table包含在数据区域中。
例如:有这样一个人员信息表,想要在这个人员信息表中填充数据,则必须先将整个成绩表的table包含到一个“书签”中。

  人员信息表  
公司名称 部门名称 员工姓名
.    

选择表格,然后插入书签,比如书签名为:PO_regTable,操作步骤如下图所示:
:-: 

注:插入书签的时候一定要先选中整个table,然后再点击插入书签按钮进行插入。

2. 编写代码给Table赋值。

    PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);
	poCtrl1.setServerPage(request.getContextPath()+"/poserver.zz"); 

	WordDocument doc = new WordDocument();

	DataRegion dataRegion = doc.openDataRegion("PO_regTable");
	
	Table table = dataRegion.openTable(1); //index代表当前书签中table位置的索引,从1开始
	
	table.openCellRC(3, 1).setValue("A公司");//openCellRC(行, 列),索引从1开始
	table.openCellRC(3, 2).setValue("开发部");
	table.openCellRC(3, 3).setValue("李清");

    //插入一行,insertRowAfter方法中的参数代表在哪个单元格下面插入一个空行
	table.insertRowAfter(table.openCellRC(3, 3));
	
	table.openCellRC(4, 1).setValue("B公司");
	table.openCellRC(4, 2).setValue("销售部");
	table.openCellRC(4, 3).setValue("张三丰");
	
	poCtrl1.setWriter(doc);
	poCtrl1.webOpen("doc/test.doc", OpenModeType.docNormalEdit, "张三");

填充数据后的表格如下图所示:
:-: 

请参考PageOffice产品开发包中Samples4示例:
一、17、给Word文档中Table赋值的简单示例

二、程序动态地给word中创建table。

同样地,程序动态地给word添加table时需要在制作模板的时候先插入一个数据区域,命名为:PO_table1,这样就可以通过获取到数据区域PO_table1之后,用数据区域对象DataRegion的CreateTable方法在此数据区域所在位置新建一个表格。CreateTable方法有三个参数,分别是:行、列和表格类型。表格类型目前分三种,如下表所示。

成员名称 值 说明
wdAutoFitFixed 0 将表格设置为固定大小而与内容无关,因此不会自动调整表格大小。
wdAutoFitContent 1 根据表格中包含的内容自动调整表格的大小
wdAutoFitWindow 2 根据活动窗口的宽度自动调整表格大小。

代码实现:

PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);

WordDocument doc = new WordDocument();
//在word中指定的"PO_table1"的数据区域内动态创建一个3行5列的表格
Table table1 = doc.openDataRegion("PO_table1").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/test.doc", OpenModeType.docNormalEdit,"张佚名");

生成效果:
:-: 154.

请参考PageOffice产品开发包中Samples4示例的“高级功能”演示:
二、43、在Word文档中动态创建表格并赋值(专业版、企业版)

分享到:
评论

相关推荐

    jQuery实现动态给table赋值的方法示例

    本篇文章将深入探讨如何使用jQuery来动态地给HTML表格(table)赋值,通过一个具体的实例来展示相关技巧。 首先,我们需要一个基本的HTML结构,包含一个具有特定类和ID的table元素。在这个例子中,我们有一个layui...

    asp.net动态创建table并赋值

    asp.net动态创建table并赋值dt.Columns.Add...

    js给table赋值的实例代码

    要求:用js实现给一个table赋值如上:(定义X=70 【HTML】 &lt;table class=table&gt; 经济条件较好地区学费表 &lt;th&gt;&lt;/th&gt; &lt;th&gt;4-8人班 &lt;th&gt;2-3人班 &lt;th&gt;1人班 &lt;th&gt;10人以上 &lt;tbody data-json=area1&gt;&lt;/tbody&gt;...

    PageOffice Java 动态填充Word模版

    以生成工资条为例,演示了通过PageOffice开发平台,用Java语言实现Word文档的在线打开、编辑和保存,数据区域数据的动态填充和提交,数据区域插入Word文件,动态填充和提交Word文件中Tabel的数据

    AsposeWord导出word表格wordtable

    在这个特定的场景中,我们关注的是如何使用Aspose.Word导出Word文档中的表格。 在.NET开发环境中,如Visual Studio 2015,可以利用Aspose.Word来处理Word文档,包括导出表格。首先,我们需要创建一个...

    cvi操作word,table

    例如,可能有类似于`create_word_document()`、`add_table()`和`format_table()`的函数,用于在Word文档中创建新文档、插入表格以及格式化表格。 "testword.prj"是CVI项目文件,它定义了项目的结构,包括源文件、库...

    PHPWord中文手册_Office_word_读取word_php_

    `.docx`是Microsoft Office 2007及更高版本中Word文档的标准格式,基于XML结构,易于程序处理。 在读取Word文档方面,PHPWord提供了`PhpWord\Reader`类,可以将`.docx`文件解析为PHP对象模型,方便进一步操作。例如...

    C#操作word里面的书签

    首先,我们需要了解如何在C#中使用Microsoft.Office.Interop.Word库来操作Word。这个库提供了与Word交互的接口,允许我们在代码中创建、读取和修改Word文档。以下是一些基本步骤: 1. 引用Microsoft.Office.Interop...

    matlab开发-table2word

    在MATLAB开发中,"table2word"是一个实用的脚本,它允许用户将MATLAB中的数据表转换并导出到Microsoft Word文档中,形成结构化的表格。这个功能对于科研人员和工程师尤其有用,因为他们经常需要在处理数据分析后将...

    PageOffice 基础教程.pdf

    PageOffice V4.0作为该产品的一个版本,其基础教程详细介绍了如何使用PageOffice进行Web项目开发中的Office文档处理。 教程首先介绍了产品的基础概念,包括试用版与正式版的区别,以及客户端安装步骤。PageOffice...

    bootstrap的tableExport插件包(支持Excel、Word等中文无乱码)

    Bootstrap的tableExport插件是一个非常实用的工具,它允许用户将Bootstrap表格中的数据导出为多种格式,包括Excel、Word和CSV等。这个插件在处理中文数据时能确保无乱码,对于中文用户来说非常友好。下面我们将深入...

    使用NPOI操作制作word

    使用NPOI操作制作word NPOI是一个流行的开源库,允许开发人员在.NET平台下生成和操作Office文档。下面我们将详细介绍如何使用NPOI操作生成word文档,包括生成段落、添加文字、添加页眉、插入图片、插入柱形图和表格...

    Table2Word.zip

    - 使用插件或工具:如Table2Word,可以自动化转换,保留原格式。 - 编程方式:通过编程语言(如Python的pandas库)读取数据并生成Word文档,适用于大量数据。 4. **IDEA与转换**: - IDEA(IntelliJ IDEA)是一...

    word读取并替换内容(table与变量都可替换)

    本教程将详细介绍如何在Java环境中实现Word文档的读取及内容替换,包括表格(table)和变量的替换。我们将使用Apache POI库,这是一个强大的开源API,专为处理Microsoft Office格式的文件而设计。 首先,安装Apache...

    poi 将echar报表生成到word table表格中

    在这个场景中,我们关注的是如何使用POI将ECharts图表生成到Word文档的表格中。ECharts是一个强大的、基于JavaScript的数据可视化库,常用于生成各种图表,如折线图、柱状图、饼图等。 首先,你需要了解如何使用...

    C#数据实体类中如何给属性赋值

    ### C# 数据实体类中如何给属性赋值 在C#开发中,处理数据库查询结果时,经常需要将查询结果映射到实体类中。本文将详细介绍如何在C#的数据实体类中为属性赋值,特别是当从数据库中取出的是一个`DataSet`对象时。 ...

    指定table导出成excel和word

    指定table导出成excel和word 指定table导出成excel和word

    JS动态创建Table,Tr,Td并赋值的具体实现

    本文档重点介绍了JavaScript语言实现动态创建HTML表格(Table)、表格行(Tr)和表格单元格(Td)的具体方法,并对它们进行赋值的过程。以下是根据所提供的文件内容提炼出的知识点: 1. 动态创建和修改表格结构 ...

Global site tag (gtag.js) - Google Analytics