|
|
@@ -0,0 +1,181 @@ |
|
|
|
package cn.afterturn.easypoi.util; |
|
|
|
|
|
|
|
import org.apache.poi.xwpf.usermodel.XWPFParagraph; |
|
|
|
import org.apache.poi.xwpf.usermodel.XWPFRun; |
|
|
|
import org.apache.poi.xwpf.usermodel.XWPFTableCell; |
|
|
|
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTFonts; |
|
|
|
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTInd; |
|
|
|
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTP; |
|
|
|
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTPPr; |
|
|
|
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTRPr; |
|
|
|
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSpacing; |
|
|
|
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTc; |
|
|
|
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTcPr; |
|
|
|
|
|
|
|
/** |
|
|
|
* Word 样式copy Created by JueYue on 2017/9/19. |
|
|
|
*/ |
|
|
|
public class PoiWordStyleUtil { |
|
|
|
|
|
|
|
|
|
|
|
public static void copyCellAndSetValue(XWPFTableCell tmpCell, XWPFTableCell cell, String text) throws Exception { |
|
|
|
CTTc cttc2 = tmpCell.getCTTc(); |
|
|
|
CTTcPr ctPr2 = cttc2.getTcPr(); |
|
|
|
|
|
|
|
CTTc cttc = cell.getCTTc(); |
|
|
|
CTTcPr ctPr = cttc.addNewTcPr(); |
|
|
|
if (tmpCell.getColor() != null) { |
|
|
|
cell.setColor(tmpCell.getColor()); |
|
|
|
} |
|
|
|
if (tmpCell.getVerticalAlignment() != null) { |
|
|
|
cell.setVerticalAlignment(tmpCell.getVerticalAlignment()); |
|
|
|
} |
|
|
|
if (ctPr2.getTcW() != null) { |
|
|
|
ctPr.addNewTcW().setW(ctPr2.getTcW().getW()); |
|
|
|
} |
|
|
|
if (ctPr2.getVAlign() != null) { |
|
|
|
ctPr.addNewVAlign().setVal(ctPr2.getVAlign().getVal()); |
|
|
|
} |
|
|
|
if (cttc2.getPList().size() > 0) { |
|
|
|
CTP ctp = cttc2.getPList().get(0); |
|
|
|
if (ctp.getPPr() != null) { |
|
|
|
if (ctp.getPPr().getJc() != null) { |
|
|
|
cttc.getPList().get(0).addNewPPr().addNewJc().setVal(ctp.getPPr().getJc().getVal()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (ctPr2.getTcBorders() != null) { |
|
|
|
ctPr.setTcBorders(ctPr2.getTcBorders()); |
|
|
|
} |
|
|
|
|
|
|
|
XWPFParagraph tmpP = tmpCell.getParagraphs().get(0); |
|
|
|
XWPFParagraph cellP = cell.getParagraphs().get(0); |
|
|
|
XWPFRun tmpR = null; |
|
|
|
if (tmpP.getRuns() != null && tmpP.getRuns().size() > 0) { |
|
|
|
tmpR = tmpP.getRuns().get(0); |
|
|
|
} |
|
|
|
XWPFRun cellR = cellP.createRun(); |
|
|
|
cellR.setText(text); |
|
|
|
//复制字体信息 |
|
|
|
if (tmpR != null) { |
|
|
|
cellR.setBold(tmpR.isBold()); |
|
|
|
cellR.setItalic(tmpR.isItalic()); |
|
|
|
cellR.setStrike(tmpR.isStrike()); |
|
|
|
cellR.setUnderline(tmpR.getUnderline()); |
|
|
|
cellR.setColor(tmpR.getColor()); |
|
|
|
cellR.setTextPosition(tmpR.getTextPosition()); |
|
|
|
if (tmpR.getFontSize() != -1) { |
|
|
|
cellR.setFontSize(tmpR.getFontSize()); |
|
|
|
} |
|
|
|
if (tmpR.getFontFamily() != null) { |
|
|
|
cellR.setFontFamily(tmpR.getFontFamily()); |
|
|
|
} |
|
|
|
if (tmpR.getCTR() != null) { |
|
|
|
if (tmpR.getCTR().isSetRPr()) { |
|
|
|
CTRPr tmpRPr = tmpR.getCTR().getRPr(); |
|
|
|
if (tmpRPr.isSetRFonts()) { |
|
|
|
CTFonts tmpFonts = tmpRPr.getRFonts(); |
|
|
|
CTRPr cellRPr = cellR.getCTR().isSetRPr() ? cellR.getCTR().getRPr() : cellR.getCTR().addNewRPr(); |
|
|
|
CTFonts cellFonts = cellRPr.isSetRFonts() ? cellRPr.getRFonts() : cellRPr.addNewRFonts(); |
|
|
|
cellFonts.setAscii(tmpFonts.getAscii()); |
|
|
|
cellFonts.setAsciiTheme(tmpFonts.getAsciiTheme()); |
|
|
|
cellFonts.setCs(tmpFonts.getCs()); |
|
|
|
cellFonts.setCstheme(tmpFonts.getCstheme()); |
|
|
|
cellFonts.setEastAsia(tmpFonts.getEastAsia()); |
|
|
|
cellFonts.setEastAsiaTheme(tmpFonts.getEastAsiaTheme()); |
|
|
|
cellFonts.setHAnsi(tmpFonts.getHAnsi()); |
|
|
|
cellFonts.setHAnsiTheme(tmpFonts.getHAnsiTheme()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
//复制段落信息 |
|
|
|
if (tmpP.getAlignment() != null) { |
|
|
|
cellP.setAlignment(tmpP.getAlignment()); |
|
|
|
} |
|
|
|
if (tmpP.getVerticalAlignment() != null) { |
|
|
|
cellP.setVerticalAlignment(tmpP.getVerticalAlignment()); |
|
|
|
} |
|
|
|
if (tmpP.getBorderBetween() != null) { |
|
|
|
cellP.setBorderBetween(tmpP.getBorderBetween()); |
|
|
|
} |
|
|
|
if (tmpP.getBorderBottom() != null){ |
|
|
|
cellP.setBorderBottom(tmpP.getBorderBottom()); |
|
|
|
} |
|
|
|
if (tmpP.getBorderLeft() != null){ |
|
|
|
cellP.setBorderLeft(tmpP.getBorderLeft()); |
|
|
|
} |
|
|
|
if (tmpP.getBorderRight() != null){ |
|
|
|
cellP.setBorderRight(tmpP.getBorderRight()); |
|
|
|
} |
|
|
|
if (tmpP.getBorderTop() != null){ |
|
|
|
cellP.setBorderTop(tmpP.getBorderTop()); |
|
|
|
} |
|
|
|
cellP.setPageBreak(tmpP.isPageBreak()); |
|
|
|
if (tmpP.getCTP() != null) { |
|
|
|
if (tmpP.getCTP().getPPr() != null) { |
|
|
|
CTPPr tmpPPr = tmpP.getCTP().getPPr(); |
|
|
|
CTPPr cellPPr = cellP.getCTP().getPPr() != null ? cellP.getCTP().getPPr() : cellP.getCTP().addNewPPr(); |
|
|
|
//复制段落间距信息 |
|
|
|
CTSpacing tmpSpacing = tmpPPr.getSpacing(); |
|
|
|
if (tmpSpacing != null) { |
|
|
|
CTSpacing cellSpacing = cellPPr.getSpacing() != null ? cellPPr.getSpacing() : cellPPr.addNewSpacing(); |
|
|
|
if (tmpSpacing.getAfter() != null) { |
|
|
|
cellSpacing.setAfter(tmpSpacing.getAfter()); |
|
|
|
} |
|
|
|
if (tmpSpacing.getAfterAutospacing() != null) { |
|
|
|
cellSpacing.setAfterAutospacing(tmpSpacing.getAfterAutospacing()); |
|
|
|
} |
|
|
|
if (tmpSpacing.getAfterLines() != null) { |
|
|
|
cellSpacing.setAfterLines(tmpSpacing.getAfterLines()); |
|
|
|
} |
|
|
|
if (tmpSpacing.getBefore() != null) { |
|
|
|
cellSpacing.setBefore(tmpSpacing.getBefore()); |
|
|
|
} |
|
|
|
if (tmpSpacing.getBeforeAutospacing() != null) { |
|
|
|
cellSpacing.setBeforeAutospacing(tmpSpacing.getBeforeAutospacing()); |
|
|
|
} |
|
|
|
if (tmpSpacing.getBeforeLines() != null) { |
|
|
|
cellSpacing.setBeforeLines(tmpSpacing.getBeforeLines()); |
|
|
|
} |
|
|
|
if (tmpSpacing.getLine() != null) { |
|
|
|
cellSpacing.setLine(tmpSpacing.getLine()); |
|
|
|
} |
|
|
|
if (tmpSpacing.getLineRule() != null) { |
|
|
|
cellSpacing.setLineRule(tmpSpacing.getLineRule()); |
|
|
|
} |
|
|
|
} |
|
|
|
//复制段落缩进信息 |
|
|
|
CTInd tmpInd = tmpPPr.getInd(); |
|
|
|
if (tmpInd != null) { |
|
|
|
CTInd cellInd = cellPPr.getInd() != null ? cellPPr.getInd() : cellPPr.addNewInd(); |
|
|
|
if (tmpInd.getFirstLine() != null) { |
|
|
|
cellInd.setFirstLine(tmpInd.getFirstLine()); |
|
|
|
} |
|
|
|
if (tmpInd.getFirstLineChars() != null) { |
|
|
|
cellInd.setFirstLineChars(tmpInd.getFirstLineChars()); |
|
|
|
} |
|
|
|
if (tmpInd.getHanging() != null) { |
|
|
|
cellInd.setHanging(tmpInd.getHanging()); |
|
|
|
} |
|
|
|
if (tmpInd.getHangingChars() != null) { |
|
|
|
cellInd.setHangingChars(tmpInd.getHangingChars()); |
|
|
|
} |
|
|
|
if (tmpInd.getLeft() != null) { |
|
|
|
cellInd.setLeft(tmpInd.getLeft()); |
|
|
|
} |
|
|
|
if (tmpInd.getLeftChars() != null) { |
|
|
|
cellInd.setLeftChars(tmpInd.getLeftChars()); |
|
|
|
} |
|
|
|
if (tmpInd.getRight() != null) { |
|
|
|
cellInd.setRight(tmpInd.getRight()); |
|
|
|
} |
|
|
|
if (tmpInd.getRightChars() != null) { |
|
|
|
cellInd.setRightChars(tmpInd.getRightChars()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |