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

[简单]poi创建word 2007表格示例(二)

    博客分类:
  • poi
 
阅读更多

      应博友要求写下这个例子,office word 2007测试通过,见代码:

     

import java.io.FileOutputStream;
import java.math.BigInteger;
import java.util.List;

import org.apache.commons.lang3.StringUtils;
import org.apache.poi.xwpf.usermodel.ParagraphAlignment;
import org.apache.poi.xwpf.usermodel.TextAlignment;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.apache.poi.xwpf.usermodel.XWPFTable;
import org.apache.poi.xwpf.usermodel.XWPFTableCell;
import org.apache.poi.xwpf.usermodel.XWPFTableRow;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTBorder;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTFonts;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTHeight;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTHpsMeasure;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTJc;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTPPr;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTRPr;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTRow;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTShd;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSignedTwipsMeasure;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSpacing;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSym;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTbl;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblBorders;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblGrid;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblGridCol;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblPr;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblWidth;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTc;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTcPr;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTextScale;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTrPr;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTVerticalJc;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STBorder;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STHeightRule;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STHint;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STJc;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STLineSpacingRule;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STMerge;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STShd;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STTblWidth;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STVerticalJc;

public class POI_07_创建表格示例_S4_Test {
	public static void main(String[] args) throws Exception {
		POI_07_创建表格示例_S4_Test t2 = new POI_07_创建表格示例_S4_Test();
		t2.createTable();
	}

	/**
	 * @Description: 添加方块♢
	 */
	public void setCellContentCommonFunction(XWPFTableCell cell, String content)
			throws Exception {
		XWPFParagraph p = cell.addParagraph();
		setParagraphSpacingInfo(p, true, "0", "0", "0", "0", true, "300",
				STLineSpacingRule.AUTO);
		setParagraphAlignInfo(p, ParagraphAlignment.BOTH, TextAlignment.CENTER);
		XWPFRun pRun = getOrAddParagraphFirstRun(p, false, false);
		setParagraphRunSymInfo(p, pRun, "宋体", "Times New Roman", "21", true,
				false, false, 0, 6, 0);
		pRun = getOrAddParagraphFirstRun(p, true, false);
		setParagraphRunFontInfo(p, pRun, content, "宋体", "Times New Roman",
				"21", true, false, false, false, null, null, 0, 6, 0);
	}

	/**
	 * @Description: 保存文档
	 */
	public void saveDocument(XWPFDocument document, String savePath)
			throws Exception {
		FileOutputStream fos = new FileOutputStream(savePath);
		document.write(fos);
		fos.close();
	}

	/**
	 * @Description: 得到单元格第一个Paragraph
	 */
	public XWPFParagraph getCellFirstParagraph(XWPFTableCell cell) {
		XWPFParagraph p;
		if (cell.getParagraphs() != null && cell.getParagraphs().size() > 0) {
			p = cell.getParagraphs().get(0);
		} else {
			p = cell.addParagraph();
		}
		return p;
	}

	/**
	 * @Description: 得到段落CTPPr
	 */
	public CTPPr getParagraphCTPPr(XWPFParagraph p) {
		CTPPr pPPr = null;
		if (p.getCTP() != null) {
			if (p.getCTP().getPPr() != null) {
				pPPr = p.getCTP().getPPr();
			} else {
				pPPr = p.getCTP().addNewPPr();
			}
		}
		return pPPr;
	}

	/**
	 * @Description: 设置段落间距信息,一行=100 一磅=20
	 */
	public void setParagraphSpacingInfo(XWPFParagraph p, boolean isSpace,
			String before, String after, String beforeLines, String afterLines,
			boolean isLine, String line, STLineSpacingRule.Enum lineValue) {
		CTPPr pPPr = getParagraphCTPPr(p);
		CTSpacing pSpacing = pPPr.getSpacing() != null ? pPPr.getSpacing()
				: pPPr.addNewSpacing();
		if (isSpace) {
			// 段前磅数
			if (before != null) {
				pSpacing.setBefore(new BigInteger(before));
			}
			// 段后磅数
			if (after != null) {
				pSpacing.setAfter(new BigInteger(after));
			}
			// 段前行数
			if (beforeLines != null) {
				pSpacing.setBeforeLines(new BigInteger(beforeLines));
			}
			// 段后行数
			if (afterLines != null) {
				pSpacing.setAfterLines(new BigInteger(afterLines));
			}
		}
		// 间距
		if (isLine) {
			if (line != null) {
				pSpacing.setLine(new BigInteger(line));
			}
			if (lineValue != null) {
				pSpacing.setLineRule(lineValue);
			}
		}
	}

	/**
	 * @Description: 设置段落文本样式(高亮与底纹显示效果不同)设置字符间距信息(CTSignedTwipsMeasure)
	 * @param verticalAlign
	 *            : SUPERSCRIPT上标 SUBSCRIPT下标
	 * @param position
	 *            :字符间距位置:>0提升 <0降低=磅值*2 如3磅=6
	 * @param spacingValue
	 *            :字符间距间距 >0加宽 <0紧缩 =磅值*20 如2磅=40
	 * @param indent
	 *            :字符间距缩进 <100 缩
	 */

	public void setParagraphRunFontInfo(XWPFParagraph p, XWPFRun pRun,
			String content, String cnFontFamily, String enFontFamily,
			String fontSize, boolean isBlod, boolean isItalic,
			boolean isStrike, boolean isShd, String shdColor,
			STShd.Enum shdStyle, int position, int spacingValue, int indent) {
		CTRPr pRpr = getRunCTRPr(p, pRun);
		if (StringUtils.isNotBlank(content)) {
			// pRun.setText(content);
			if (content.contains("\n")) {// System.properties("line.separator")
				String[] lines = content.split("\n");
				pRun.setText(lines[0], 0); // set first line into XWPFRun
				for (int i = 1; i < lines.length; i++) {
					// add break and insert new text
					pRun.addBreak();
					pRun.setText(lines[i]);
				}
			} else {
				pRun.setText(content, 0);
			}
		}
		// 设置字体
		CTFonts fonts = pRpr.isSetRFonts() ? pRpr.getRFonts() : pRpr
				.addNewRFonts();
		if (StringUtils.isNotBlank(enFontFamily)) {
			fonts.setAscii(enFontFamily);
			fonts.setHAnsi(enFontFamily);
		}
		if (StringUtils.isNotBlank(cnFontFamily)) {
			fonts.setEastAsia(cnFontFamily);
			fonts.setHint(STHint.EAST_ASIA);
		}
		// 设置字体大小
		CTHpsMeasure sz = pRpr.isSetSz() ? pRpr.getSz() : pRpr.addNewSz();
		sz.setVal(new BigInteger(fontSize));

		CTHpsMeasure szCs = pRpr.isSetSzCs() ? pRpr.getSzCs() : pRpr
				.addNewSzCs();
		szCs.setVal(new BigInteger(fontSize));

		// 设置字体样式
		// 加粗
		if (isBlod) {
			pRun.setBold(isBlod);
		}
		// 倾斜
		if (isItalic) {
			pRun.setItalic(isItalic);
		}
		// 删除线
		if (isStrike) {
			pRun.setStrike(isStrike);
		}
		if (isShd) {
			// 设置底纹
			CTShd shd = pRpr.isSetShd() ? pRpr.getShd() : pRpr.addNewShd();
			if (shdStyle != null) {
				shd.setVal(shdStyle);
			}
			if (shdColor != null) {
				shd.setColor(shdColor);
				shd.setFill(shdColor);
			}
		}

		// 设置文本位置
		if (position != 0) {
			pRun.setTextPosition(position);
		}
		if (spacingValue > 0) {
			// 设置字符间距信息
			CTSignedTwipsMeasure ctSTwipsMeasure = pRpr.isSetSpacing() ? pRpr
					.getSpacing() : pRpr.addNewSpacing();
			ctSTwipsMeasure
					.setVal(new BigInteger(String.valueOf(spacingValue)));
		}
		if (indent > 0) {
			CTTextScale paramCTTextScale = pRpr.isSetW() ? pRpr.getW() : pRpr
					.addNewW();
			paramCTTextScale.setVal(indent);
		}
	}

	/**
	 * @Description: 得到XWPFRun的CTRPr
	 */
	public CTRPr getRunCTRPr(XWPFParagraph p, XWPFRun pRun) {
		CTRPr pRpr = null;
		if (pRun.getCTR() != null) {
			pRpr = pRun.getCTR().getRPr();
			if (pRpr == null) {
				pRpr = pRun.getCTR().addNewRPr();
			}
		} else {
			pRpr = p.getCTP().addNewR().addNewRPr();
		}
		return pRpr;
	}

	/**
	 * @Description: 设置段落对齐
	 */
	public void setParagraphAlignInfo(XWPFParagraph p,
			ParagraphAlignment pAlign, TextAlignment valign) {
		if (pAlign != null) {
			p.setAlignment(pAlign);
		}
		if (valign != null) {
			p.setVerticalAlignment(valign);
		}
	}

	public XWPFRun getOrAddParagraphFirstRun(XWPFParagraph p, boolean isInsert,
			boolean isNewLine) {
		XWPFRun pRun = null;
		if (isInsert) {
			pRun = p.createRun();
		} else {
			if (p.getRuns() != null && p.getRuns().size() > 0) {
				pRun = p.getRuns().get(0);
			} else {
				pRun = p.createRun();
			}
		}
		if (isNewLine) {
			pRun.addBreak();
		}
		return pRun;
	}

	/**
	 * @Description: 设置Table的边框
	 */
	public void setTableBorders(XWPFTable table, STBorder.Enum borderType,
			String size, String color, String space) {
		CTTblPr tblPr = getTableCTTblPr(table);
		CTTblBorders borders = tblPr.isSetTblBorders() ? tblPr.getTblBorders()
				: tblPr.addNewTblBorders();
		CTBorder hBorder = borders.isSetInsideH() ? borders.getInsideH()
				: borders.addNewInsideH();
		hBorder.setVal(borderType);
		hBorder.setSz(new BigInteger(size));
		hBorder.setColor(color);
		hBorder.setSpace(new BigInteger(space));

		CTBorder vBorder = borders.isSetInsideV() ? borders.getInsideV()
				: borders.addNewInsideV();
		vBorder.setVal(borderType);
		vBorder.setSz(new BigInteger(size));
		vBorder.setColor(color);
		vBorder.setSpace(new BigInteger(space));

		CTBorder lBorder = borders.isSetLeft() ? borders.getLeft() : borders
				.addNewLeft();
		lBorder.setVal(borderType);
		lBorder.setSz(new BigInteger(size));
		lBorder.setColor(color);
		lBorder.setSpace(new BigInteger(space));

		CTBorder rBorder = borders.isSetRight() ? borders.getRight() : borders
				.addNewRight();
		rBorder.setVal(borderType);
		rBorder.setSz(new BigInteger(size));
		rBorder.setColor(color);
		rBorder.setSpace(new BigInteger(space));

		CTBorder tBorder = borders.isSetTop() ? borders.getTop() : borders
				.addNewTop();
		tBorder.setVal(borderType);
		tBorder.setSz(new BigInteger(size));
		tBorder.setColor(color);
		tBorder.setSpace(new BigInteger(space));

		CTBorder bBorder = borders.isSetBottom() ? borders.getBottom()
				: borders.addNewBottom();
		bBorder.setVal(borderType);
		bBorder.setSz(new BigInteger(size));
		bBorder.setColor(color);
		bBorder.setSpace(new BigInteger(space));
	}

	/**
	 * @Description: 得到Table的CTTblPr,不存在则新建
	 */
	public CTTblPr getTableCTTblPr(XWPFTable table) {
		CTTbl ttbl = table.getCTTbl();
		CTTblPr tblPr = ttbl.getTblPr() == null ? ttbl.addNewTblPr() : ttbl
				.getTblPr();
		return tblPr;
	}

	/**
	 * @Description: 设置列宽和垂直对齐方式
	 */
	public void setCellWidthAndVAlign(XWPFTableCell cell, String width,
			STTblWidth.Enum typeEnum, STVerticalJc.Enum vAlign) {
		CTTcPr tcPr = getCellCTTcPr(cell);
		CTTblWidth tcw = tcPr.isSetTcW() ? tcPr.getTcW() : tcPr.addNewTcW();
		if (width != null) {
			tcw.setW(new BigInteger(width));
		}
		if (typeEnum != null) {
			tcw.setType(typeEnum);
		}
		if (vAlign != null) {
			CTVerticalJc vJc = tcPr.isSetVAlign() ? tcPr.getVAlign() : tcPr
					.addNewVAlign();
			vJc.setVal(vAlign);
		}
	}

	/**
	 * @Description: 跨列合并
	 */
	public void mergeCellsHorizontal(XWPFTable table, int row, int fromCell,
			int toCell) {
		for (int cellIndex = fromCell; cellIndex <= toCell; cellIndex++) {
			XWPFTableCell cell = table.getRow(row).getCell(cellIndex);
			if (cellIndex == fromCell) {
				// The first merged cell is set with RESTART merge value
				getCellCTTcPr(cell).addNewHMerge().setVal(STMerge.RESTART);
			} else {
				// Cells which join (merge) the first one,are set with CONTINUE
				getCellCTTcPr(cell).addNewHMerge().setVal(STMerge.CONTINUE);
			}
		}
	}

	/**
	 * 
	 * @Description: 得到Cell的CTTcPr,不存在则新建
	 */
	public CTTcPr getCellCTTcPr(XWPFTableCell cell) {
		CTTc cttc = cell.getCTTc();
		CTTcPr tcPr = cttc.isSetTcPr() ? cttc.getTcPr() : cttc.addNewTcPr();
		return tcPr;
	}

	/**
	 * @Description: 设置表格列宽
	 */
	public void setTableGridCol(XWPFTable table, int[] colWidths) {
		CTTbl ttbl = table.getCTTbl();
		CTTblGrid tblGrid = ttbl.getTblGrid() != null ? ttbl.getTblGrid()
				: ttbl.addNewTblGrid();
		for (int j = 0, len = colWidths.length; j < len; j++) {
			CTTblGridCol gridCol = tblGrid.addNewGridCol();
			gridCol.setW(new BigInteger(String.valueOf(colWidths[j])));
		}
	}

	public void setParagraphRunSymInfo(XWPFParagraph p, XWPFRun pRun,
			String cnFontFamily, String enFontFamily, String fontSize,
			boolean isBlod, boolean isItalic, boolean isStrike, int position,
			int spacingValue, int indent) throws Exception {
		CTRPr pRpr = getRunCTRPr(p, pRun);
		// 设置字体
		CTFonts fonts = pRpr.isSetRFonts() ? pRpr.getRFonts() : pRpr
				.addNewRFonts();
		if (StringUtils.isNotBlank(enFontFamily)) {
			fonts.setAscii(enFontFamily);
			fonts.setHAnsi(enFontFamily);
		}
		if (StringUtils.isNotBlank(cnFontFamily)) {
			fonts.setEastAsia(cnFontFamily);
			fonts.setHint(STHint.EAST_ASIA);
		}
		// 设置字体大小
		CTHpsMeasure sz = pRpr.isSetSz() ? pRpr.getSz() : pRpr.addNewSz();
		sz.setVal(new BigInteger(fontSize));

		CTHpsMeasure szCs = pRpr.isSetSzCs() ? pRpr.getSzCs() : pRpr
				.addNewSzCs();
		szCs.setVal(new BigInteger(fontSize));

		// 设置字体样式
		// 加粗
		if (isBlod) {
			pRun.setBold(isBlod);
		}
		// 倾斜
		if (isItalic) {
			pRun.setItalic(isItalic);
		}
		// 删除线
		if (isStrike) {
			pRun.setStrike(isStrike);
		}
		// 设置文本位置
		if (position != 0) {
			pRun.setTextPosition(position);
		}
		if (spacingValue > 0) {
			// 设置字符间距信息
			CTSignedTwipsMeasure ctSTwipsMeasure = pRpr.isSetSpacing() ? pRpr
					.getSpacing() : pRpr.addNewSpacing();
			ctSTwipsMeasure
					.setVal(new BigInteger(String.valueOf(spacingValue)));
		}
		if (indent > 0) {
			CTTextScale paramCTTextScale = pRpr.isSetW() ? pRpr.getW() : pRpr
					.addNewW();
			paramCTTextScale.setVal(indent);
		}
		List<CTSym> symList = pRun.getCTR().getSymList();
		CTSym sym = CTSym.Factory
				.parse("<xml-fragment w:font=\"Wingdings 2\" w:char=\"00A3\" xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" xmlns:wne=\"http://schemas.microsoft.com/office/word/2006/wordml\"> </xml-fragment>");
		symList.add(sym);
	}

	/**
	 * @Description: 设置表格总宽度与水平对齐方式
	 */
	public void setTableWidthAndHAlign(XWPFTable table, String width,
			STJc.Enum enumValue) {
		CTTblPr tblPr = getTableCTTblPr(table);
		CTTblWidth tblWidth = tblPr.isSetTblW() ? tblPr.getTblW() : tblPr
				.addNewTblW();
		if (enumValue != null) {
			CTJc cTJc = tblPr.addNewJc();
			cTJc.setVal(enumValue);
		}
		tblWidth.setW(new BigInteger(width));
		tblWidth.setType(STTblWidth.DXA);
	}

	/**
	 * @Description: 设置单元格Margin
	 */
	public void setTableCellMargin(XWPFTable table, int top, int left,
			int bottom, int right) {
		table.setCellMargins(top, left, bottom, right);
	}

	/**
	 * @Description: 得到CTTrPr,不存在则新建
	 */
	public CTTrPr getRowCTTrPr(XWPFTableRow row) {
		CTRow ctRow = row.getCtRow();
		CTTrPr trPr = ctRow.isSetTrPr() ? ctRow.getTrPr() : ctRow.addNewTrPr();
		return trPr;
	}

	/**
	 * @Description: 设置行高
	 */
	public void setRowHeight(XWPFTableRow row, String hight,
			STHeightRule.Enum heigthEnum) {
		CTTrPr trPr = getRowCTTrPr(row);
		CTHeight trHeight;
		if (trPr.getTrHeightList() != null && trPr.getTrHeightList().size() > 0) {
			trHeight = trPr.getTrHeightList().get(0);
		} else {
			trHeight = trPr.addNewTrHeight();
		}
		trHeight.setVal(new BigInteger(hight));
		if (heigthEnum != null) {
			trHeight.setHRule(heigthEnum);
		}
	}

	/**
	 * @Description: 设置底纹
	 */
	public void setCellShdStyle(XWPFTableCell cell, boolean isShd,
			String shdColor, STShd.Enum shdStyle) {
		CTTcPr tcPr = getCellCTTcPr(cell);
		if (isShd) {
			// 设置底纹
			CTShd shd = tcPr.isSetShd() ? tcPr.getShd() : tcPr.addNewShd();
			if (shdStyle != null) {
				shd.setVal(shdStyle);
			}
			if (shdColor != null) {
				shd.setColor(shdColor);
				shd.setFill(shdColor);
			}
		}
	}

	public void createTable() throws Exception {
		XWPFDocument xdoc = new XWPFDocument();

		XWPFParagraph p = xdoc.createParagraph();
		// 固定值25磅
		setParagraphSpacingInfo(p, true, "0", "80", null, null, true, "500",
				STLineSpacingRule.EXACT);
		// 居中
		setParagraphAlignInfo(p, ParagraphAlignment.CENTER,
				TextAlignment.CENTER);
		XWPFRun pRun = getOrAddParagraphFirstRun(p, false, false);
		setParagraphRunFontInfo(p, pRun, "××××(××)事件报告表", "宋体",
				"Times New Roman", "36", true, false, false, false, null, null,
				0, 0, 90);

		p = xdoc.createParagraph();
		// 固定值25磅
		setParagraphSpacingInfo(p, true, "0", "80", null, null, true, "500",
				STLineSpacingRule.EXACT);
		// 居中
		setParagraphAlignInfo(p, ParagraphAlignment.CENTER,
				TextAlignment.CENTER);
		pRun = getOrAddParagraphFirstRun(p, false, false);
		setParagraphRunFontInfo(p, pRun, "(××××××)", "宋体", "Times New Roman",
				"36", true, false, false, false, null, null, 0, 0, 90);

		p = xdoc.createParagraph();
		// 单倍行距
		setParagraphSpacingInfo(p, true, "0", "0", "0", "0", true, "240",
				STLineSpacingRule.AUTO);
		setParagraphAlignInfo(p, ParagraphAlignment.LEFT, TextAlignment.CENTER);
		pRun = getOrAddParagraphFirstRun(p, false, false);
		setParagraphRunFontInfo(p, pRun, "﹡报告日期:年月日﹡ 事件发生日期:年月日", "宋体",
				"Times New Roman", "24", true, false, false, false, null, null,
				0, 6, 0);

		// 创建表格21行3列
		XWPFTable table = xdoc.createTable(21, 4);
		setTableBorders(table, STBorder.SINGLE, "4", "auto", "0");
		setTableWidthAndHAlign(table, "9024", STJc.CENTER);
		setTableCellMargin(table, 0, 108, 0, 108);
		int[] colWidths = new int[] { 2169, 2638, 525, 3692 };
		setTableGridCol(table, colWidths);

		XWPFTableRow row = table.getRow(0);
		setRowHeight(row, "460", STHeightRule.AT_LEAST);
		XWPFTableCell cell = row.getCell(0);
		setCellShdStyle(cell, true, "FFFFFF", null);
		p = getCellFirstParagraph(cell);
		pRun = getOrAddParagraphFirstRun(p, false, false);
		setParagraphRunFontInfo(p, pRun, "A.负责人或部门资料 ﹡", "宋体",
				"Times New Roman", "24", true, false, false, false, null, null,
				0, 6, 0);
		mergeCellsHorizontal(table, 0, 0, 3);

		row = table.getRow(1);
		setRowHeight(row, "567", STHeightRule.AT_LEAST);
		cell = row.getCell(0);
		setCellWidthAndVAlign(cell, "2169", STTblWidth.DXA, STVerticalJc.TOP);
		p = getCellFirstParagraph(cell);
		pRun = getOrAddParagraphFirstRun(p, false, false);
		setParagraphRunFontInfo(p, pRun, "1.负责人:", "宋体", "Times New Roman",
				"21", false, false, false, false, null, null, 0, 6, 0);

		cell = row.getCell(1);
		setCellWidthAndVAlign(cell, "3163", STTblWidth.DXA, STVerticalJc.TOP);
		p = getCellFirstParagraph(cell);
		pRun = getOrAddParagraphFirstRun(p, false, false);
		setParagraphRunFontInfo(p, pRun, "2.负责部门:", "宋体", "Times New Roman",
				"21", false, false, false, false, null, null, 0, 6, 0);

		cell = row.getCell(2);
		setCellWidthAndVAlign(cell, "3692", STTblWidth.DXA, STVerticalJc.TOP);
		p = getCellFirstParagraph(cell);
		pRun = getOrAddParagraphFirstRun(p, false, false);
		setParagraphRunFontInfo(p, pRun, "3.事件发生地点:", "宋体", "Times New Roman",
				"21", false, false, false, false, null, null, 0, 6, 0);
		cell = row.getCell(3);
		setCellWidthAndVAlign(cell, "0", STTblWidth.AUTO, STVerticalJc.TOP);
		mergeCellsHorizontal(table, 1, 2, 3);

		row = table.getRow(2);
		setRowHeight(row, "657", STHeightRule.AT_LEAST);
		cell = row.getCell(0);
		p = getCellFirstParagraph(cell);
		pRun = getOrAddParagraphFirstRun(p, false, false);
		setParagraphRunFontInfo(p, pRun, "4.在场相关人员:", "宋体", "Times New Roman",
				"21", false, false, false, false, null, null, 0, 6, 0);
		mergeCellsHorizontal(table, 2, 0, 3);

		row = table.getRow(3);
		setRowHeight(row, "387", STHeightRule.AT_LEAST);
		cell = row.getCell(0);
		setCellShdStyle(cell, true, "FFFFFF", null);
		p = getCellFirstParagraph(cell);
		pRun = getOrAddParagraphFirstRun(p, false, false);
		setParagraphRunFontInfo(p, pRun, "B.不良事件情况 ﹡", "宋体", "Times New Roman",
				"24", true, false, false, false, null, null, 0, 6, 0);
		mergeCellsHorizontal(table, 3, 0, 3);

		row = table.getRow(4);
		setRowHeight(row, "1613", STHeightRule.AT_LEAST);
		cell = row.getCell(0);
		p = getCellFirstParagraph(cell);
		pRun = getOrAddParagraphFirstRun(p, false, false);
		setParagraphRunFontInfo(p, pRun, "5.事件主要表现:", "宋体", "Times New Roman",
				"21", false, false, false, false, null, null, 0, 6, 0);
		mergeCellsHorizontal(table, 4, 0, 3);

		row = table.getRow(5);
		setRowHeight(row, "369", STHeightRule.AT_LEAST);
		cell = row.getCell(0);
		setCellShdStyle(cell, true, "FFFFFF", null);
		p = getCellFirstParagraph(cell);
		pRun = getOrAddParagraphFirstRun(p, false, false);
		setParagraphRunFontInfo(p, pRun, "C.不良事件类别 ﹡", "宋体", "Times New Roman",
				"24", true, false, false, false, null, null, 0, 6, 0);
		mergeCellsHorizontal(table, 5, 0, 3);

		row = table.getRow(6);
		cell = row.getCell(0);
		p = getCellFirstParagraph(cell);
		setParagraphSpacingInfo(p, true, "0", "0", "0", "0", true, "300",
				STLineSpacingRule.AUTO);
		setParagraphAlignInfo(p, ParagraphAlignment.BOTH, TextAlignment.CENTER);
		pRun = getOrAddParagraphFirstRun(p, false, false);
		setParagraphRunSymInfo(p, pRun, "宋体", "Times New Roman", "21", true,
				false, false, 0, 6, 0);
		setParagraphRunFontInfo(p, pRun, "××××××××××××××××××××××××××××", "宋体",
				"Times New Roman", "21", true, false, false, false, null, null,
				0, 6, 0);
		setCellContentCommonFunction(cell, "××××××××××××××××××××××××××××");
		setCellContentCommonFunction(cell, "××××××××××××××××××××××××××××");
		setCellContentCommonFunction(cell, "××××××××××××××××××××××××××××");
		setCellContentCommonFunction(cell, "××××××××××××××××××××××××××××");
		setCellContentCommonFunction(cell, "××××××××××××××××××××××××××××");
		setCellContentCommonFunction(cell, "××××××××××××××××××××××××××××");
		setCellContentCommonFunction(cell, "××××××××××××××××××××××××××××");
		setCellContentCommonFunction(cell, "××××××××××××××××××××××××××××");
		setCellContentCommonFunction(cell, "××××××××××××××××××××××××××××");
		setCellContentCommonFunction(cell, "××××××××××××××××××××××××××××");

		cell = row.getCell(2);
		p = getCellFirstParagraph(cell);
		setParagraphSpacingInfo(p, true, "0", "0", "0", "0", true, "300",
				STLineSpacingRule.AUTO);
		setParagraphAlignInfo(p, ParagraphAlignment.BOTH, TextAlignment.CENTER);
		pRun = getOrAddParagraphFirstRun(p, false, false);
		setParagraphRunSymInfo(p, pRun, "宋体", "Times New Roman", "21", true,
				false, false, 0, 6, 0);
		setParagraphRunFontInfo(p, pRun, "××××××××××××××××××××××××××××", "宋体",
				"Times New Roman", "21", true, false, false, false, null, null,
				0, 6, 0);
		setCellContentCommonFunction(cell, "××××××××××××××××××××××××××××");
		setCellContentCommonFunction(cell, "××××××××××××××××××××××××××××");
		setCellContentCommonFunction(cell, "××××××××××××××××××××××××××××");
		setCellContentCommonFunction(cell, "××××××××××××××××××××××××××××");
		setCellContentCommonFunction(cell, "××××××××××××××××××××××××××××");
		setCellContentCommonFunction(cell, "××××××××××××××××××××××××××××");
		setCellContentCommonFunction(cell, "××××××××××××××××××××××××××××");
		setCellContentCommonFunction(cell, "××××××××××××××××××××××××××××");

		mergeCellsHorizontal(table, 6, 0, 1);
		mergeCellsHorizontal(table, 6, 2, 3);

		row = table.getRow(7);
		setRowHeight(row, "467", STHeightRule.AT_LEAST);
		cell = row.getCell(0);
		setCellShdStyle(cell, true, "FFFFFF", null);
		p = getCellFirstParagraph(cell);
		pRun = getOrAddParagraphFirstRun(p, false, false);
		setParagraphRunFontInfo(p, pRun, "D.不良事件的等级 *", "宋体",
				"Times New Roman", "24", true, false, false, false, null, null,
				0, 6, 0);
		mergeCellsHorizontal(table, 7, 0, 3);

		row = table.getRow(8);
		setRowHeight(row, "467", STHeightRule.AT_LEAST);
		cell = row.getCell(0);
		setCellShdStyle(cell, true, "FFFFFF", null);
		p = getCellFirstParagraph(cell);
		setParagraphAlignInfo(p, ParagraphAlignment.CENTER,
				TextAlignment.CENTER);
		pRun = getOrAddParagraphFirstRun(p, false, false);
		setParagraphRunSymInfo(p, pRun, "宋体", "Times New Roman", "28", true,
				false, false, 0, 6, 0);
		setParagraphRunFontInfo(p, pRun, "Ⅰ级事件", "宋体", "Times New Roman", "28",
				true, false, false, false, null, null, 0, 6, 0);
		pRun = getOrAddParagraphFirstRun(p, true, false);
		setParagraphRunSymInfo(p, pRun, "宋体", "Times New Roman", "28", true,
				false, false, 0, 6, 0);
		setParagraphRunFontInfo(p, pRun, "Ⅱ级事件     ", "宋体", "Times New Roman",
				"28", true, false, false, false, null, null, 0, 6, 0);
		pRun = getOrAddParagraphFirstRun(p, true, false);
		setParagraphRunSymInfo(p, pRun, "宋体", "Times New Roman", "28", true,
				false, false, 0, 6, 0);
		setParagraphRunFontInfo(p, pRun, "Ⅲ级事件 ", "宋体", "Times New Roman",
				"28", true, false, false, false, null, null, 0, 6, 0);
		pRun = getOrAddParagraphFirstRun(p, true, false);
		setParagraphRunSymInfo(p, pRun, "宋体", "Times New Roman", "28", true,
				false, false, 0, 6, 0);
		setParagraphRunFontInfo(p, pRun, "Ⅳ级事件 ", "宋体", "Times New Roman",
				"28", true, false, false, false, null, null, 0, 6, 0);
		mergeCellsHorizontal(table, 8, 0, 3);

		row = table.getRow(9);
		setRowHeight(row, "467", STHeightRule.AT_LEAST);
		cell = row.getCell(0);
		setCellShdStyle(cell, true, "FFFFFF", null);
		p = getCellFirstParagraph(cell);
		pRun = getOrAddParagraphFirstRun(p, false, false);
		setParagraphRunFontInfo(p, pRun, "E.事件发生的影响 *", "宋体",
				"Times New Roman", "24", true, false, false, false, null, null,
				0, 6, 0);
		mergeCellsHorizontal(table, 9, 0, 3);

		row = table.getRow(10);
		setRowHeight(row, "722", STHeightRule.AT_LEAST);
		mergeCellsHorizontal(table, 10, 0, 3);

		row = table.getRow(11);
		setRowHeight(row, "427", STHeightRule.AT_LEAST);
		cell = row.getCell(0);
		setCellShdStyle(cell, true, "FFFFFF", null);
		p = getCellFirstParagraph(cell);
		pRun = getOrAddParagraphFirstRun(p, false, false);
		setParagraphRunFontInfo(p, pRun, "F.事件发生后及时处理与分析 *", "宋体",
				"Times New Roman", "24", true, false, false, false, null, null,
				0, 6, 0);
		mergeCellsHorizontal(table, 11, 0, 3);

		row = table.getRow(12);
		setRowHeight(row, "936", STHeightRule.AT_LEAST);
		cell = row.getCell(0);
		p = getCellFirstParagraph(cell);
		pRun = getOrAddParagraphFirstRun(p, false, false);
		setParagraphRunFontInfo(p, pRun, "立即通知的人员:", "宋体", "Times New Roman",
				"21", false, false, false, false, null, null, 0, 6, 0);
		mergeCellsHorizontal(table, 12, 0, 3);

		row = table.getRow(13);
		setRowHeight(row, "936", STHeightRule.AT_LEAST);
		cell = row.getCell(0);
		p = getCellFirstParagraph(cell);
		pRun = getOrAddParagraphFirstRun(p, false, false);
		setParagraphRunFontInfo(p, pRun, "可能相关的因素:", "宋体", "Times New Roman",
				"21", false, false, false, false, null, null, 0, 6, 0);
		mergeCellsHorizontal(table, 13, 0, 3);

		row = table.getRow(14);
		setRowHeight(row, "936", STHeightRule.AT_LEAST);
		cell = row.getCell(0);
		p = getCellFirstParagraph(cell);
		pRun = getOrAddParagraphFirstRun(p, false, false);
		setParagraphRunFontInfo(p, pRun, "立即采取的措施:", "宋体", "Times New Roman",
				"21", false, false, false, false, null, null, 0, 6, 0);
		mergeCellsHorizontal(table, 14, 0, 3);

		row = table.getRow(15);
		setRowHeight(row, "936", STHeightRule.AT_LEAST);
		cell = row.getCell(0);
		p = getCellFirstParagraph(cell);
		pRun = getOrAddParagraphFirstRun(p, false, false);
		setParagraphRunFontInfo(p, pRun, "事件处理情况:", "宋体", "Times New Roman",
				"21", false, false, false, false, null, null, 0, 6, 0);
		mergeCellsHorizontal(table, 15, 0, 3);

		row = table.getRow(16);
		setRowHeight(row, "460", STHeightRule.AT_LEAST);
		cell = row.getCell(0);
		setCellShdStyle(cell, true, "FFFFFF", null);
		p = getCellFirstParagraph(cell);
		pRun = getOrAddParagraphFirstRun(p, false, false);
		setParagraphRunFontInfo(p, pRun, "G.不良事件评价(主管部门填写) *", "宋体",
				"Times New Roman", "24", true, false, false, false, null, null,
				0, 6, 0);
		mergeCellsHorizontal(table, 16, 0, 3);

		row = table.getRow(17);
		setRowHeight(row, "580", STHeightRule.AT_LEAST);
		cell = row.getCell(0);
		p = getCellFirstParagraph(cell);
		pRun = getOrAddParagraphFirstRun(p, false, false);
		setParagraphRunFontInfo(p, pRun, "主管部门意见陈述:", "宋体", "Times New Roman",
				"21", false, false, false, false, null, null, 0, 6, 0);
		mergeCellsHorizontal(table, 17, 0, 3);

		row = table.getRow(18);
		setRowHeight(row, "1157", STHeightRule.AT_LEAST);
		cell = row.getCell(0);
		setCellShdStyle(cell, true, "FFFFFF", null);
		p = getCellFirstParagraph(cell);
		pRun = getOrAddParagraphFirstRun(p, false, false);
		setParagraphRunFontInfo(p, pRun, "H.持续改进措施(主管部门填写) *", "宋体",
				"Times New Roman", "24", true, false, false, false, null, null,
				0, 6, 0);
		mergeCellsHorizontal(table, 18, 0, 3);

		row = table.getRow(19);
		setRowHeight(row, "457", STHeightRule.AT_LEAST);
		cell = row.getCell(0);
		setCellShdStyle(cell, true, "FFFFFF", null);
		p = getCellFirstParagraph(cell);
		pRun = getOrAddParagraphFirstRun(p, false, false);
		setParagraphRunFontInfo(p, pRun, "I.选择性填写项目(Ⅰ、Ⅱ级事件必填 *,Ⅲ、Ⅳ级事件建议填写)",
				"宋体", "Times New Roman", "24", true, false, false, false, null,
				null, 0, 6, 0);
		mergeCellsHorizontal(table, 19, 0, 3);

		row = table.getRow(20);
		setRowHeight(row, "567", STHeightRule.AT_LEAST);
		cell = row.getCell(0);
		p = getCellFirstParagraph(cell);
		pRun = getOrAddParagraphFirstRun(p, false, false);
		setParagraphRunFontInfo(p, pRun, "报 告 人:    行政后勤人员 ", "宋体",
				"Times New Roman", "21", false, false, false, false, null,
				null, 0, 6, 0);
		pRun = getOrAddParagraphFirstRun(p, true, false);
		setParagraphRunSymInfo(p, pRun, "宋体", "Times New Roman", "21", true,
				false, false, 0, 6, 0);
		pRun = getOrAddParagraphFirstRun(p, true, false);
		setParagraphRunFontInfo(p, pRun, "其他  ", "宋体", "Times New Roman",
				"21", false, false, false, false, null, null, 0, 6, 0);
		pRun = getOrAddParagraphFirstRun(p, true, false);
		setParagraphRunSymInfo(p, pRun, "宋体", "Times New Roman", "21", true,
				false, false, 0, 6, 0);

		p = cell.addParagraph();
		pRun = getOrAddParagraphFirstRun(p, false, false);
		setParagraphRunFontInfo(p, pRun, "当事人的类别:本院", "宋体", "Times New Roman",
				"21", false, false, false, false, null, null, 0, 6, 0);
		pRun = getOrAddParagraphFirstRun(p, true, false);
		setParagraphRunSymInfo(p, pRun, "宋体", "Times New Roman", "21", true,
				false, false, 0, 6, 0);
		pRun = getOrAddParagraphFirstRun(p, true, false);
		setParagraphRunFontInfo(p, pRun, "    其他 ", "宋体", "Times New Roman",
				"21", false, false, false, false, null, null, 0, 6, 0);
		pRun = getOrAddParagraphFirstRun(p, true, false);
		setParagraphRunSymInfo(p, pRun, "宋体", "Times New Roman", "21", true,
				false, false, 0, 6, 0);

		p = cell.addParagraph();
		pRun = getOrAddParagraphFirstRun(p, false, false);
		setParagraphRunFontInfo(p, pRun, "职    称:    高级 ", "宋体",
				"Times New Roman", "21", false, false, false, false, null,
				null, 0, 6, 0);
		pRun = getOrAddParagraphFirstRun(p, true, false);
		setParagraphRunSymInfo(p, pRun, "宋体", "Times New Roman", "21", true,
				false, false, 0, 6, 0);
		pRun = getOrAddParagraphFirstRun(p, true, false);
		setParagraphRunFontInfo(p, pRun, "    中级 ", "宋体", "Times New Roman",
				"21", false, false, false, false, null, null, 0, 6, 0);
		pRun = getOrAddParagraphFirstRun(p, true, false);
		setParagraphRunSymInfo(p, pRun, "宋体", "Times New Roman", "21", true,
				false, false, 0, 6, 0);

		pRun = getOrAddParagraphFirstRun(p, true, false);
		setParagraphRunFontInfo(p, pRun, "    初级 ", "宋体", "Times New Roman",
				"21", false, false, false, false, null, null, 0, 6, 0);
		pRun = getOrAddParagraphFirstRun(p, true, false);
		setParagraphRunSymInfo(p, pRun, "宋体", "Times New Roman", "21", true,
				false, false, 0, 6, 0);

		pRun = getOrAddParagraphFirstRun(p, true, false);
		setParagraphRunFontInfo(p, pRun, "   其他 ", "宋体", "Times New Roman",
				"21", false, false, false, false, null, null, 0, 6, 0);
		pRun = getOrAddParagraphFirstRun(p, true, false);
		setParagraphRunSymInfo(p, pRun, "宋体", "Times New Roman", "21", true,
				false, false, 0, 6, 0);

		p = cell.addParagraph();
		p = cell.addParagraph();
		pRun = getOrAddParagraphFirstRun(p, false, false);
		setParagraphRunFontInfo(
				p,
				pRun,
				"报告人签名:         科室:         联系电话:             Email:           ",
				"宋体", "Times New Roman", "21", false, false, false, false,
				null, null, 0, 6, 0);
		mergeCellsHorizontal(table, 20, 0, 3);

		saveDocument(xdoc, "f:/saveFile/temp/sys_" + System.currentTimeMillis()
				+ ".docx");
	}
}

    结果为:

   

 

    本文系原创,转载请注明出处,本文原始链接: http://53873039oycg.iteye.com/blog/2194549   ,谢谢。

     全文完。

  • 大小: 96.5 KB
0
0
分享到:
评论
9 楼 cm0924 2017-11-02  
跨列不支持wps啊 ,有没有解决办法?
8 楼 fuwen1989 2017-07-26  
lengfeng80 写道
问下用的poi版本是3.11的嘛,
我用这个例子提示
java.lang.NoClassDefFoundError: org/openxmlformats/schemas/wordprocessingml/x2006/main/impl/CTTcImpl$1PList,
不知道缺少了哪个包,本身代码没有提示缺少类,运行时候才跑异常。



我重新整理了个程序,可以直接运行,里面包含必备的JAR包
http://blog.csdn.net/fuwen1989/article/details/76130701
7 楼 sbfivwsll 2017-04-25  
必须得ooxml-schemas-1.X.jar,
poi-ooxml-schemas-XX.jar包不得行得。
下载地址:
https://repo1.maven.org/maven2/org/apache/poi/ooxml-schemas/1.3/
6 楼 Action-人生 2016-04-07  
博主请问你的版本是多少啊?能不能把jar都附带一份啊,我这边在官网下的最新的3.14拷贝了你的代码,发现提示少import org.openxmlformats.schemas.wordprocessingml.x2006.main.STHeightRule,
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STHint,,请问一下是不是缺少啥jar包,现在急,望博主指明道。。。。。谢谢
5 楼 lengfeng80 2015-03-30  
53873039oycg 写道
lengfeng80 写道
问下用的poi版本是3.11的嘛,
我用这个例子提示
java.lang.NoClassDefFoundError: org/openxmlformats/schemas/wordprocessingml/x2006/main/impl/CTTcImpl$1PList,
不知道缺少了哪个包,本身代码没有提示缺少类,运行时候才跑异常。

ooxml-schemas-1.1.jar有这个包吗?


果然是少了这个包,我还以为poi-ooxml-schemas-3.11-20141221.jar 跟这个是一样的,谢谢哈
4 楼 lengfeng80 2015-03-30  
53873039oycg 写道
lengfeng80 写道
问下用的poi版本是3.11的嘛,
我用这个例子提示
java.lang.NoClassDefFoundError: org/openxmlformats/schemas/wordprocessingml/x2006/main/impl/CTTcImpl$1PList,
不知道缺少了哪个包,本身代码没有提示缺少类,运行时候才跑异常。

ooxml-schemas-1.1.jar有这个包吗?

poi-ooxml-schemas-3.11-20141221.jar 我这边是这个包。
3 楼 53873039oycg 2015-03-27  
lengfeng80 写道
问下用的poi版本是3.11的嘛,
我用这个例子提示
java.lang.NoClassDefFoundError: org/openxmlformats/schemas/wordprocessingml/x2006/main/impl/CTTcImpl$1PList,
不知道缺少了哪个包,本身代码没有提示缺少类,运行时候才跑异常。

ooxml-schemas-1.1.jar有这个包吗?
2 楼 lengfeng80 2015-03-27  
问下用的poi版本是3.11的嘛,
我用这个例子提示
java.lang.NoClassDefFoundError: org/openxmlformats/schemas/wordprocessingml/x2006/main/impl/CTTcImpl$1PList,
不知道缺少了哪个包,本身代码没有提示缺少类,运行时候才跑异常。
1 楼 a754782339 2015-03-22  
老大万岁  

相关推荐

    POI读取 word 2003 和 word 2007 的例子

    word 2007 示例文件 值得注意的是 POI 在读取 word 文件的时候不会读取 word 文件中的图片信息 还有就是对于 2007 版的 word docx 如果 word 文件中有表格 所有表格中的数据都会在读取出来的字符串的最后 "&gt;这是一个...

    poi解析word的所有jar包

    poi解析word文档的所需jar包,有poi-3.9.jar ,poi-ooxml-3.8-20120326.jar poi-scratchpad-3.8-...ooxml-schemas-1.1.jar 解析word表格的示例代码地址为https://blog.csdn.net/wohuozheng/article/details/88037982

    poi操作word实例

    内含两种poi(HWPFDocument、XWPFDocument)操作word的实例,

    java数据源导出WORD文档(包括图片、表格及文本)

    最近因项目开发的需要,整理了一份用JAVA导出WORD文档,其部署步骤如下: 1、将jacob-1.14.3-x86.dll放在服务器的系统盘...以上配置配好后即可加载exp_java_word_demo项目,里面有示例代码,望对有需要的人有所帮助!

    java使用poi读取ppt文件和poi读取excel、word示例

    主要介绍了java使用poi读取ppt文件和poi读取excel、word示例,需要的朋友可以参考下

    POI 操作EXCEL WORD完整例子示范(公司内部代码)

    * 处理动态表格 * 默认取第二行第一列的标识 * @param table * @param ctRow * @param values 需要添加的数据 */ public static void processDynamicTable(XWPFTable table, CTRow ctRow, List[]&gt; values) { ...

    java的poi示例demo.rar

    使用javapoi生成word内容,包含文本替换、表格生成、图表生成、文本框内容替换,内容会一直更新在:https://blog.csdn.net/u014427811/article/details/100771314 该资源博主设置了1积分,如果有变化,是系统自己改...

    java使用POI实现html和word相互转换

    主要为大家详细介绍了java使用POI实现html和word的相互转换,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    word源码java-easy-office-process:一个我自己手写的基于javapoi的处理excel表格的小框架

    我基于自己做项目时的一些需求,针对POI进行了二次封装,并进行了一系列改进,使Java操作Excel、Word等文件变得更加简单。本框架相比于hutool等更“轻”,没有十分复杂的设计模式、接口等,上手更加容易。 [toc] ...

    Java 添加Word项目符号、编号列表.zip

    此文件主要包括了通过java给Word文档添加项目符号以及项目编号列表的代码示例,以及操作代码所需要的类库、组件等。

    springboot项目中json导出成标准接口文档到word(swagger样式)

    根据业务需求需要,需要将json格式的api信息【比如postman导出接口文档这类的】,导出成标准接口文档的word文件。 该平台是将一些好的第三方平台接口接入进来,供用户使用,每个用户下有可以使用的接口,可以根据...

    soaoffice示例代码

    soaoffice示例代码 SOAOffice是一种中间件软件,不能直接给最终用户使用,需要软件编程人员将SOAOffice集成到软件系统中才能发挥它的威力。比较直观的来说,通常有以下需求的Web开发者推荐使用SOAOffice: 1. 需要把...

    Java程序读写操作Excel示例

    这是一个用Java程序读写操作Excel文件的例子。 例子用到了Apache POI项目...Apache POI项目中还提供了Java操作Word、PPT、Visio等类型文件的方法。 这个例子是我的一个叫姚楠学生写的,现在拿出来供大家分享

    easyuiPoi导出Excel工具类封装(支持合并单元格)

    easyuiPoi 通过模板导出Excel、支持纵向合并单元格(合并重复内容)。压缩包包含公共工具类、示例模板、调用截图。

Global site tag (gtag.js) - Google Analytics