当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

[简单]poi插入word 2007内容控件实现思路

发表于: 2015-03-25   作者:53873039oycg   来源:转载   浏览:
摘要:        生成内容控件和读取内容控件代码差不多,读取是get,生成是addNew。往段落和表格外插入内容控件没有实现,部分关键代码如下:        public void setCTSdtPr(CTSdtPr sdtPr, String id, String alia

       生成内容控件和读取内容控件代码差不多,读取是get,生成是addNew。往段落和表格外插入内容控件没有实现,部分关键代码如下:

      

public void setCTSdtPr(CTSdtPr sdtPr, String id, String alias, String tag,
			CTRPr rprStyle, boolean isText, boolean isTextMutil,
			boolean notDel, boolean notEdit, boolean isDelAfterEdit) {
		if (isText) {
			// 纯文本
			CTSdtText sdtText = sdtPr.addNewText();
			// 允许多行
			if (isTextMutil) {
				sdtText.setMultiLine(STOnOff.TRUE);
			}
		}
		// 设置id
		if (StringUtils.isNumeric(id)) {
			CTDecimalNumber sdtId = sdtPr.addNewId();
			sdtId.setVal(new BigInteger(id));
		}
		// 设置标题
		if (StringUtils.isNotBlank(alias)) {
			CTString ctAlia = sdtPr.addNewAlias();
			ctAlia.setVal(alias);
		}
		// 设置标记
		if (StringUtils.isNotBlank(tag)) {
			CTString ctTag = sdtPr.addNewTag();
			ctTag.setVal(tag);
		}
		// 无法删除内容控件,无法编辑内容
		if (notDel && notEdit) {
			CTLock ctLock = sdtPr.addNewLock();
			ctLock.setVal(STLock.SDT_CONTENT_LOCKED);
		} else if (notDel) {
			// 无法删除
			CTLock ctLock = sdtPr.addNewLock();
			ctLock.setVal(STLock.SDT_LOCKED);
		} else if (notEdit) {
			// 无法编辑
			CTLock ctLock = sdtPr.addNewLock();
			ctLock.setVal(STLock.CONTENT_LOCKED);
		}
		// 替换后是否删除内容控件
		if (!notDel && isDelAfterEdit) {
			CTOnOff ctTmp = sdtPr.addNewTemporary();
			ctTmp.setVal(STOnOff.TRUE);
		}
		if (rprStyle != null) {
			sdtPr.getRPrList().add(rprStyle);
		}
	}

    其他部分代码很简单,就不写了。

    全文完。

[简单]poi插入word 2007内容控件实现思路

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
word 2007 Wingdings字符操作步骤如下图: 代码很简单: import java.io.FileOutputStream; import ja
首先poi中XWPFTable.addNewRowBetween(start, end);是不能实现插入行功能的,poi3.11版本未实现该功
word 2007内容控件位置: 代码如下: import java.io.File; import java.io.StringWriter; import jav
word 2007批注测试数据如下图: 代码执行结果为: 主要思路: 利用docx4j的org.docx4j.finders.Comment
word表格插入一行如下: 实现思路: 主要分在当前行上方插入行和在当前行下方插入行。对首尾2行特殊处
功能介绍: 主要实现往已有表格填充数据,在数据列大于表格列时不会新增列,因为新增列涉及单元格宽度
import java.io.BufferedReader; import java.io.FileOutputStream; import java.io.Reader; import
应博友要求写下这个例子,office word 2007测试通过,见代码: import java.io.FileOutputStream; im
直接上代码: import java.io.FileOutputStream; import java.math.BigInteger; import java.util.Ar
直接上代码: import java.io.FileOutputStream; import java.math.BigInteger; import java.util.R
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号