本文整理汇总了Java中org.docx4j.wml.Tc类的典型用法代码示例。如果您正苦于以下问题:Java Tc类的具体用法?Java Tc怎么用?Java Tc使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
Tc类属于org.docx4j.wml包,在下文中一共展示了Tc类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: addStyling
import org.docx4j.wml.Tc; //导入依赖的package包/类
/**
* 这里我们添加实际的样式信息, 首先创建一个段落, 然后创建以单元格内容作为值的文本对象;
* 第三步, 创建一个被称为运行块的对象, 它是一块或多块拥有共同属性的文本的容器, 并将文本对象添加
* 到其中. 随后我们将运行块R添加到段落内容中.
* 直到现在我们所做的还没有添加任何样式, 为了达到目标, 我们创建运行块属性对象并给它添加各种样式.
* 这些运行块的属性随后被添加到运行块. 最后段落被添加到表格的单元格中.
*/
public void addStyling(Tc tableCell, String content, boolean bold, String fontSize) {
P paragraph = factory.createP();
Text text = factory.createText();
text.setValue(content);
R run = factory.createR();
run.getContent().add(text);
paragraph.getContent().add(run);
RPr runProperties = factory.createRPr();
if (bold) {
addBoldStyle(runProperties);
}
if (fontSize != null && !fontSize.isEmpty()) {
setFontSize(runProperties, fontSize);
}
run.setRPr(runProperties);
tableCell.getContent().add(paragraph);
}
示例2: addMergedCell
import org.docx4j.wml.Tc; //导入依赖的package包/类
/**
* 我们创建一个单元格和单元格属性对象.
* 也创建了一个纵向合并对象. 如果合并值不为null, 将它设置到合并对象中. 然后将该对象添加到
* 单元格属性并将属性添加到单元格中. 最后设置单元格内容并将单元格添加到行中.
* 如果合并值为'restart', 表明要开始一个新行. 如果为null, 继续按前面的行处理, 也就是合并单元格.
*/
public void addMergedCell(Tr row, String content, String vMergeVal) {
Tc tableCell = factory.createTc();
TcPr tableCellProperties = new TcPr();
VMerge merge = new VMerge();
if(vMergeVal != null){
merge.setVal(vMergeVal);
}
tableCellProperties.setVMerge(merge);
tableCell.setTcPr(tableCellProperties);
if(content != null) {
tableCell.getContent().add(wmlPackage.getMainDocumentPart(). createParagraphOfText(content));
}
row.getContent().add(tableCell);
}
示例3: getTcByPosition
import org.docx4j.wml.Tc; //导入依赖的package包/类
public Tc getTcByPosition(List<Tc> tcList, int position) {
int k = 0;
for (int i = 0, len = tcList.size(); i < len; i++) {
Tc tc = tcList.get(i);
TcPr trPr = tc.getTcPr();
if (trPr != null) {
GridSpan gridSpan = trPr.getGridSpan();
if (gridSpan != null) {
k += gridSpan.getVal().intValue() - 1;
}
}
if (k >= position) {
return tcList.get(i);
}
k++;
}
if (position < tcList.size()) {
return tcList.get(position);
}
return null;
}
示例4: getTcCellSizeWithMergeNum
import org.docx4j.wml.Tc; //导入依赖的package包/类
/**
* @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;
}
示例5: setTcHidden
import org.docx4j.wml.Tc; //导入依赖的package包/类
/**
* @Description: 隐藏单元格内容
*/
public void setTcHidden(Tc tc, boolean hidden) {
List<P> pList = getTcAllP(tc);
for (P p : pList) {
PPr ppr = getPPr(p);
List<Object> objRList = getAllElementFromObject(p, R.class);
if (objRList == null) {
continue;
}
for (Object objR : objRList) {
if (objR instanceof R) {
R r = (R) objR;
RPr rpr = getRPr(r);
setRPrVanishStyle(rpr, hidden);
}
}
setParaVanish(ppr, hidden);
}
}
示例6: getTcByPosition
import org.docx4j.wml.Tc; //导入依赖的package包/类
/**
* 实现思路:
主要分在当前行上方插入行和在当前行下方插入行。对首尾2行特殊处理,在有跨行合并情况时,在第一行上面或者在最后一行下面插入是不会跨行的但是可能会跨列。
对于中间的行,主要参照当前行,如果当前行跨行,则新增行也跨行,如果当前行单元格结束跨行,则新增的上方插入行跨行,下方插入行不跨行,如果当前行单元格开始跨行,则新增的上方插入行不跨行,下发插入行跨行。
主要思路就是这样,插入的时候需要得到真实位置的单元格,代码如下:
*/
// 按位置得到单元格(考虑跨列合并情况)
public Tc getTcByPosition(List<Tc> tcList, int position) {
int k = 0;
for (int i = 0, len = tcList.size(); i < len; i++) {
Tc tc = tcList.get(i);
TcPr trPr = tc.getTcPr();
if (trPr != null) {
GridSpan gridSpan = trPr.getGridSpan();
if (gridSpan != null) {
k += gridSpan.getVal().intValue() - 1;
}
}
if (k >= position) {
return tcList.get(i);
}
k++;
}
if (position < tcList.size()) {
return tcList.get(position);
}
return null;
}
示例7: setNewTcContent
import org.docx4j.wml.Tc; //导入依赖的package包/类
/**
* 设置单元格内容
*
* @param tc
* @param content
*/
public static void setNewTcContent(Tc tc, String content) {
P p = factory.createP();
tc.getContent().add(p);
R run = factory.createR();
p.getContent().add(run);
if (content != null) {
String[] contentArr = content.split("\n");
Text text = factory.createText();
text.setSpace("preserve");
text.setValue(contentArr[0]);
run.getContent().add(text);
for (int i = 1, len = contentArr.length; i < len; i++) {
Br br = factory.createBr();
run.getContent().add(br);// 换行
text = factory.createText();
text.setSpace("preserve");
text.setValue(contentArr[i]);
run.getContent().add(text);
}
}
}
示例8: mergeCellsVertically
import org.docx4j.wml.Tc; //导入依赖的package包/类
/**
* @Description: 跨行合并
*/
public static void mergeCellsVertically(Tbl tbl, int col, int fromRow, int toRow) {
if (col < 0 || fromRow < 0 || toRow < 0) {
return;
}
for (int rowIndex = fromRow; rowIndex <= toRow; rowIndex++) {
Tc tc = getTc(tbl, rowIndex, col);
if (tc == null) {
break;
}
TcPr tcPr = getTcPr(tc);
VMerge vMerge = tcPr.getVMerge();
if (vMerge == null) {
vMerge = factory.createTcPrInnerVMerge();
tcPr.setVMerge(vMerge);
}
if (rowIndex == fromRow) {
vMerge.setVal("restart");
} else {
vMerge.setVal("continue");
}
}
}
示例9: addMergedCell
import org.docx4j.wml.Tc; //导入依赖的package包/类
/**
* 我们创建一个单元格和单元格属性对象.
* 也创建了一个纵向合并对象. 如果合并值不为null, 将它设置到合并对象中. 然后将该对象添加到
* 单元格属性并将属性添加到单元格中. 最后设置单元格内容并将单元格添加到行中.
*
* 如果合并值为'restart', 表明要开始一个新行. 如果为null, 继续按前面的行处理, 也就是合并单元格.
*/
private static void addMergedCell(Tr row, String content, String vMergeVal) {
Tc tableCell = factory.createTc();
TcPr tableCellProperties = new TcPr();
VMerge merge = new VMerge();
if(vMergeVal != null){
merge.setVal(vMergeVal);
}
tableCellProperties.setVMerge(merge);
tableCell.setTcPr(tableCellProperties);
if(content != null) {
tableCell.getContent().add(
wordMLPackage.getMainDocumentPart().
createParagraphOfText(content));
}
row.getContent().add(tableCell);
}
示例10: addStyling
import org.docx4j.wml.Tc; //导入依赖的package包/类
/**
* 这里我们添加实际的样式信息, 首先创建一个段落, 然后创建以单元格内容作为值的文本对象;
* 第三步, 创建一个被称为运行块的对象, 它是一块或多块拥有共同属性的文本的容器, 并将文本对象添加
* 到其中. 随后我们将运行块R添加到段落内容中.
* 直到现在我们所做的还没有添加任何样式, 为了达到目标, 我们创建运行块属性对象并给它添加各种样式.
* 这些运行块的属性随后被添加到运行块. 最后段落被添加到表格的单元格中.
*/
private static void addStyling(Tc tableCell, String content, boolean bold, String fontSize) {
P paragraph = factory.createP();
Text text = factory.createText();
text.setValue(content);
R run = factory.createR();
run.getContent().add(text);
paragraph.getContent().add(run);
RPr runProperties = factory.createRPr();
if (bold) {
addBoldStyle(runProperties);
}
if (fontSize != null && !fontSize.isEmpty()) {
setFontSize(runProperties, fontSize);
}
run.setRPr(runProperties);
tableCell.getContent().add(paragraph);
}
示例11: applyGridSpan
import org.docx4j.wml.Tc; //导入依赖的package包/类
private static void applyGridSpan( final Tc cell, final int colSpan, final String rowSpan, int w, boolean mergedVertical ) {
TcPr tcPr = factory.createTcPr();
TblWidth tblWidth = factory.createTblWidth();
tblWidth.setType( "dxa" );
tblWidth.setW( BigInteger.valueOf( w*colSpan ) );
tcPr.setTcW( tblWidth );
if ( colSpan > 1) {
GridSpan gridSpan = factory.createTcPrInnerGridSpan();
gridSpan.setVal(BigInteger.valueOf(colSpan));
tcPr.setGridSpan(gridSpan);
}
if ( mergedVertical ) {
//logger.debug(" this is vertical span");
VMerge gridVSpan = factory.createTcPrInnerVMerge();
if (rowSpan != null)
gridVSpan.setVal(rowSpan);
tcPr.setVMerge(gridVSpan);
}
cell.setTcPr(tcPr);
}
示例12: paragraphsInNestedTablesAreRemoved
import org.docx4j.wml.Tc; //导入依赖的package包/类
private void paragraphsInNestedTablesAreRemoved(WordprocessingMLPackage document) {
final List<Tbl> tables = new ArrayList<>();
CoordinatesWalker walker = new BaseCoordinatesWalker(document) {
@Override
protected void onTable(TableCoordinates tableCoordinates) {
tables.add(tableCoordinates.getTable());
}
};
walker.walk();
Tbl nestedTable = tables.get(1);
Tc cell = (Tc) ((JAXBElement) ((Tr) nestedTable.getContent().get(1)).getContent().get(0)).getValue();
P p1 = (P) cell.getContent().get(0);
Assert.assertEquals(1, cell.getContent().size());
Assert.assertEquals("This paragraph stays untouched.", new ParagraphWrapper(p1).getText());
}
示例13: addTableCell
import org.docx4j.wml.Tc; //导入依赖的package包/类
private void addTableCell(Tr tableRow, BandElement be, P paragraph, int width, Map<String, Object> style, int horizontalMergedCells, String verticalMergedVal, boolean isImage) {
Tc tableCell = factory.createTc();
if (isImage) {
addImageCellStyle(tableCell, be, paragraph, style);
} else {
addHyperlinkCellStyle(tableCell, be, paragraph, style);
}
setCellWidth(tableCell, width);
setCellVMerge(tableCell, verticalMergedVal);
setCellHMerge(tableCell, horizontalMergedCells);
if (!isImage) {
if ((be != null) && !be.isWrapText()) {
setCellNoWrap(tableCell);
}
}
tableRow.getContent().add(tableCell);
}
示例14: addHyperlinkCellStyle
import org.docx4j.wml.Tc; //导入依赖的package包/类
private void addHyperlinkCellStyle(Tc tableCell, BandElement be, P hyperlink, Map<String, Object> style) {
setCellMargins(tableCell, style);
setBackground(tableCell, style);
setVerticalAlignment(tableCell, style);
setHorizontalAlignment(hyperlink, style);
setCellBorders(tableCell, style);
R run = (R) ((org.docx4j.wml.P.Hyperlink)hyperlink.getContent().get(0)).getContent().get(0);
RPr runProperties = run.getRPr();
setFont(tableCell, style, runProperties);
if (be != null) {
setTextDirection(tableCell, be.getTextRotation());
}
tableCell.getContent().add(hyperlink);
}
示例15: addTableCellWithWidth
import org.docx4j.wml.Tc; //导入依赖的package包/类
/**
* 本方法创建一个单元格并将给定的内容添加进去.
* 如果给定的宽度大于0, 将这个宽度设置到单元格.
* 最后, 将单元格添加到行中.
*/
public void addTableCellWithWidth(Tr row, String content, int width){
Tc tableCell = factory.createTc();
tableCell.getContent().add(wmlPackage.getMainDocumentPart().createParagraphOfText(content));
if (width > 0) {
setCellWidth(tableCell, width);
}
row.getContent().add(tableCell);
}