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

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

    博客分类:
  • poi
 
阅读更多

       生成内容控件和读取内容控件代码差不多,读取是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);
		}
	}

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

    全文完。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics