文件導(dǎo)出整理
一劍寒霜十四州
發(fā)布于 云南 2019-12-08 · 2.7w瀏覽 5回復(fù) 9贊

一、首先加入依賴:

<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


一劍寒霜十四州
小怪獸,我是明非?。?
瀏覽 2.7w
9 收藏 2
相關(guān)推薦
最新評論 5
贊過的人 9
評論加載中...

暫無評論,快來評論吧!