一、首先加入依賴:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
注意這里版本最好使用最新版本,版本低的話會導(dǎo)致word導(dǎo)出時很多樣式用不了(項目中的坑,導(dǎo)致更新版本,以前的很多樣式報錯,又得全部修改一遍)
二、導(dǎo)出excel
1.創(chuàng)建sheet
XSSFWorkbook input_work = new XSSFWorkbook();
XSSFSheet input_sheet = input_work.createSheet(sheetName);
2.設(shè)置樣式
XSSFCellStyle title = input_work.createCellStyle();
title.setAlignment(HorizontalAlignment.CENTER);
title.setVerticalAlignment(VerticalAlignment.CENTER);
XSSFFont font = input_work.createFont();
font.setFontName("方正小標(biāo)宋_GBK");
font.setFontHeightInPoints((short) 18);//設(shè)置字體大小
title.setFont(font);//要用到的字體格式
3.合并單元格
input_sheet.addMergedRegion(new CellRangeAddress(firstRow,lastRow,firstCell,lastCell));
4.賦值
cell.setCellValue
三、導(dǎo)出word
XWPFDocument document = new XWPFDocument();
1.設(shè)置段落居中
XWPFParagraph titleParagraph = document.createParagraph();
titleParagraph.setAlignment(ParagraphAlignment.CENTER);
XWPFRun titleParagraphRun = titleParagraph.createRun();
titleParagraphRun.setText(titile);
titleParagraphRun.setFontSize(16);
2.換行
XWPFParagraph lineFeed = document.createParagraph();
XWPFRun lineFeedRun = lineFeed.createRun();
lineFeedRun.setText("\r");
3.創(chuàng)建表格
XWPFTable infoTable = document.createTable();
3.1設(shè)置列寬
infoTableRowTimeAndDW.getCell(0).getCTTc().addNewTcPr().addNewTcW().setW(BigInteger.valueOf(4000));
3.2去掉單元格邊框
CTTcBorders tblBorderTime = infoTableRowTimeAndDW.getCell(0).getCTTc().getTcPr().addNewTcBorders();
tblBorderTime.addNewRight().setVal(STBorder.NONE);
tblBorderTime.addNewLeft().setVal(STBorder.NONE);
tblBorderTime.addNewTop().setVal(STBorder.NONE);
3.3設(shè)置內(nèi)容對齊方式
infoTableRowTimeAndDW.getCell(0).getParagraphs().get(0).setAlignment(ParagraphAlignment.LEFT);
infoTableRowTimeAndDW.getCell(1).getParagraphs().get(0).setAlignment(ParagraphAlignment.RIGHT);
3.4合并單元格:STMerge.RESTART開始、STMerge.CONTINUE結(jié)束單元格
imageTableRow.getCell(0).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.RESTART);
imageTableRow.getCell(1).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);
3.5往表格中導(dǎo)入圖片:需要使用addPicture方法,注意圖片的大小需要使用Units.toEMU(XX)去定義,不然不生效
XWPFRun run = imageTableRow.getCell(0).addParagraph().createRun();
run.addPicture( new FileInputStream(“C:\XX”), XWPFDocument.PICTURE_TYPE_JPEG, imageName, Units.toEMU(420), Units.toEMU(380));
四、當(dāng)然還有更為簡單的導(dǎo)出就是easyPOI但是對word的支持不是特別友好
http://easypoi.mydoc.io/#text_197817







暫無評論,快來評論吧!