`
53873039oycg
  • 浏览: 837082 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

[简单]docx4j表格新增行(Tr)

 
阅读更多

       从本篇博文开始,不提供全部的代码,详细代码见http://53873039oycg.iteye.com/blog/2194479。关键代码如下:

     

/**
	 * @Description: 在表格指定位置新增一行,默认居中
	 */
	public void addTrByIndex(Tbl tbl, int index) {
		addTrByIndex(tbl, index, STVerticalJc.CENTER, JcEnumeration.CENTER);
	}

	/**
	 * @Description: 在表格指定位置新增一行(默认按表格定义的列数添加)
	 */
	public void addTrByIndex(Tbl tbl, int index, STVerticalJc vAlign,
			JcEnumeration hAlign) {
		TblGrid tblGrid = tbl.getTblGrid();
		Tr tr = new Tr();
		if (tblGrid != null) {
			List<TblGridCol> gridList = tblGrid.getGridCol();
			for (TblGridCol tblGridCol : gridList) {
				Tc tc = new Tc();
				setTcWidth(tc, tblGridCol.getW().toString());
				if (vAlign != null) {
					// 垂直居中
					setTcVAlign(tc, vAlign);
				}
				P p = new P();
				if (hAlign != null) {
					PPr pPr = new PPr();
					Jc jc = new Jc();
					// 单元格居中对齐
					jc.setVal(hAlign);
					pPr.setJc(jc);
					p.setPPr(pPr);
				}
				R run = new R();
				p.getContent().add(run);
				tc.getContent().add(p);
				tr.getContent().add(tc);
			}
		} else {
			// 大部分情况都不会走到这一步
			Tr firstTr = getTblAllTr(tbl).get(0);
			int cellSize = getTcCellSizeWithMergeNum(firstTr);
			for (int i = 0; i < cellSize; i++) {
				Tc tc = new Tc();
				if (vAlign != null) {
					// 垂直居中
					setTcVAlign(tc, vAlign);
				}
				P p = new P();
				if (hAlign != null) {
					PPr pPr = new PPr();
					Jc jc = new Jc();
					// 单元格居中对齐
					jc.setVal(hAlign);
					pPr.setJc(jc);
					p.setPPr(pPr);
				}
				R run = new R();
				p.getContent().add(run);
				tc.getContent().add(p);
				tr.getContent().add(tc);
			}
		}
		if (index >= 0&&index<tbl.getContent().size()) {
			tbl.getContent().add(index, tr);
		} else {
			tbl.getContent().add(tr);
		}
	}
	
	/**
	 * @Description: 得到行的列数
	 */
	public int getTcCellSizeWithMergeNum(Tr tr) {
		int cellSize = 1;
		List<Tc> tcList = getTrAllCell(tr);
		if (tcList == null || tcList.size() == 0) {
			return cellSize;
		}
		cellSize = tcList.size();
		for (Tc tc : tcList) {
			TcPr tcPr = getTcPr(tc);
			GridSpan gridSpan = tcPr.getGridSpan();
			if (gridSpan != null) {
				cellSize += gridSpan.getVal().intValue() - 1;
			}
		}
		return cellSize;
	}

 

     全文完。

 

分享到:
评论

相关推荐

    docx4j 动态生成表格 (一 )

    docx4j库提供了丰富的功能,使得这些操作变得简单易行。 总的来说,docx4j是处理OOXML文档的强大工具,对于需要生成报告、自动化文档处理或与Word文档交互的Java开发者来说,它是一个不可或缺的资源。通过学习和...

    最新 docx4j-master

    最新 docx4j-master最新 docx4j-master最新 docx4j-master最新 docx4j-master最新 docx4j-master最新 docx4j-master最新 docx4j-master最新 docx4j-master最新 docx4j-master最新 docx4j-master最新 docx4j-master...

    docx4j所需jar包全

    **docx4j** 是一个Java库,专为处理Microsoft Office Open XML (OOXML) 文件格式,如.docx、.xlsx和.pptx而设计。它提供了强大的功能,包括创建、读取、修改以及转换这些文件。在本讨论中,我们将深入探讨docx4j在...

    docx4j及其依赖包

    总之,docx4j是一个强大且灵活的工具,能够帮助开发者高效地处理`.docx`文档,无论是简单的文本替换还是复杂的文档操作,都能轻松应对。通过深入理解和熟练使用docx4j,可以大大提升文档处理的自动化水平,降低手动...

    docx4j所有jar包

    **docx4j** 是一个Java库,专为处理Microsoft Office Open XML (OOXML) 文件格式而设计。这个库主要用于创建、修改以及转换Word(.docx)文档、Excel(.xlsx)工作簿和PowerPoint(.pptx)演示文稿。在Java应用中,...

    docx4j相关jar包

    **docx4j相关jar包** docx4j是一款强大的Java库,专门用于处理Microsoft Office Open XML(OOXML)格式的文档,如.docx、.xlsx和.pptx。这个库使得开发者能够在Java应用程序中创建、修改和转换这些文档,而无需依赖...

    docx4j全部jar包,包含docx4j-3.2.1.jar、poi-3.14.jar等60个jar包。.zip

    docx4j是一个Java库,专门用于处理Microsoft Office Open XML(OOXML)格式,特别是.docx和.pptx文档。这个库提供了丰富的功能,包括创建、读取、修改以及转换这些文档。它允许开发者通过编程方式操作Word文档,极大...

    docx4j-3.3.5-API文档-中英对照版.zip

    赠送jar包:docx4j-3.3.5.jar; 赠送原API文档:docx4j-3.3.5-javadoc.jar; 赠送源代码:docx4j-3.3.5-sources.jar; 赠送Maven依赖信息文件:docx4j-3.3.5.pom; 包含翻译后的API文档:docx4j-3.3.5-javadoc-API...

    docx4j操作word

    "docx4j操作word" docx4j是一个功能强大的Java类库,用于创建和操作Microsoft Open XML文件,如Word docx、PowerPoint pptx和Excel xlsx。今天,我们将详细介绍如何使用docx4j操作Word文档。 1. Docx4j介绍 docx4...

    docx4j-3.3.5-API文档-中文版.zip

    赠送jar包:docx4j-3.3.5.jar; 赠送原API文档:docx4j-3.3.5-javadoc.jar; 赠送源代码:docx4j-3.3.5-sources.jar; 赠送Maven依赖信息文件:docx4j-3.3.5.pom; 包含翻译后的API文档:docx4j-3.3.5-javadoc-API...

    Docx4j office word java

    3. **操作文档内容**:可以使用`org.docx4j.model.content.Body`和`org.docx4j.model.elements.Paragraph`等类来添加文本、段落、表格等元素。此外,还可以通过`org.docx4j.model.properties.Text`设置文本属性,如...

    利用docx4j实现docx转pdf

    本篇文章将详细介绍如何利用Java库docx4j将.docx文档转换为.pdf格式。 首先,docx4j是一个开源的Java库,它提供了处理Open XML文档(如.docx, .xlsx等)的能力。这个库不仅支持读取和创建这些文件,还支持将它们...

    docx4j-3.3.3.zip

    《docx4j-3.3.3:Java处理Word文档的强大工具》 在Java开发中,处理Microsoft Office格式的文档是一项常见的需求,尤其是docx格式。为了方便开发者,一个名为docx4j的开源库应运而生,它允许程序员以编程方式创建、...

    docx4j项目(javadoc文档、源码及示例)

    以下是一个简单的示例,演示如何使用docx4j在现有Word文档中添加文本: ```java import org.docx4j.openpackaging.packages.WordprocessingMLPackage; import org.docx4j.openpackaging.parts.WordprocessingML....

    DOCX4J jar包

    docx4j 用的jar包,docx4j学习网址:http://www.docx4java.org/trac/docx4j

    Docx4J入门指南(英文)

    Docx4J是一个强大的开源Java库,它主要用于处理Word2007(.docx)、PowerPoint2007(.pptx)和Excel2007(.xlsx)文件,特别在处理Word文档方面,与Apache POI相比具有更强大的功能。Docx4J的官方入门指南是英文版本...

    docx4j根据书签替换word中的内容

    下面是一个简单的示例,演示如何使用`docx4j`根据书签替换Word文档中的内容。首先,你需要在你的项目中引入`docx4j`库,可以通过Maven或者Gradle等构建工具添加依赖。 ```xml &lt;groupId&gt;org.docx4j &lt;artifactId&gt;...

    docx4j 替换文本

    下面是一个简单的示例代码,展示了如何使用docx4j替换文档中的文本: ```java import org.docx4j.openpackaging.packages.WordprocessingMLPackage; import org.docx4j.replace.ContentFinder; import org.docx4j....

Global site tag (gtag.js) - Google Analytics