itext 导出word
生活随笔
收集整理的這篇文章主要介紹了
itext 导出word
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
?? ??? ?Rectangle rectPageSize = new Rectangle(PageSize.A4);
?? ??? ?// 創(chuàng)建word文檔,并設(shè)置紙張的大小
?? ??? ?Document document = new Document(rectPageSize);
?? ??? ?try {
?? ??? ??? ?// 文件名稱
?? ??? ??? ?String fileName = new String("黨支部會議通知".getBytes(), "ISO-8859-1")
?? ??? ??? ??? ??? ?+ ".doc";
?? ??? ??? ?getResponse().setContentType("application/msexcel");
?? ??? ??? ?getResponse().addHeader("Content-Disposition",
?? ??? ??? ??? ??? ?"attachment; filename=" + fileName);
?? ??? ??? ?OutputStream out = getResponse().getOutputStream();
?? ??? ??? ?// 建立一個書寫器(Writer)與document對象關(guān)聯(lián),通過書寫器(Writer)可以將文檔寫入到磁盤中
?? ??? ??? ?RtfWriter2.getInstance(document, out);
?? ??? ??? ?document.open();
?? ??? ??? ?String topic = "黨員信息表";
?? ??? ??? ?// 設(shè)置抬頭字體
?? ??? ??? ?Paragraph p = new Paragraph(topic, new Font(Font.NORMAL, 18,
?? ??? ??? ??? ??? ?Font.BOLDITALIC, new Color(0, 0, 0)));
?? ??? ??? ?p.setAlignment(1);
?? ??? ??? ?document.add(p);
?? ??? ??? ?// 創(chuàng)建有四列的表格
?? ??? ??? ?Table table = new Table(4);
?? ??? ??? ?// 每列所占比例
?? ??? ??? ?int width[] = { 20, 30, 20, 30 };
?? ??? ??? ?table.setLocked(true);
?? ??? ??? ?// 設(shè)置每列所占比例
?? ??? ??? ?table.setWidths(width);
?? ??? ??? ?// 占頁面寬度 90%
?? ??? ??? ?table.setWidth(90);
?? ??? ??? ?// 居中顯示
?? ??? ??? ?table.setAlignment(Element.ALIGN_CENTER);
?? ??? ??? ?// 縱向居中顯示
?? ??? ??? ?table.setAlignment(Element.ALIGN_MIDDLE);
?? ??? ??? ?// 自動填滿
?? ??? ??? ?table.setAutoFillEmptyCells(true);
?? ??? ??? ?// 襯距
?? ??? ??? ?table.setPadding(0);
?? ??? ??? ?// 即單元格之間的間距
?? ??? ??? ?table.setSpacing(0);
?? ??? ??? ?// 邊框
?? ??? ??? ?table.setBorder(1);
?? ??? ??? ?table.setBorderWidth(1);
?? ??? ??? ?// 設(shè)置中文字體
?? ??? ??? ?BaseFont bfChinese = BaseFont.createFont("STSongStd-Light",
?? ??? ??? ??? ??? ?"UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
?? ??? ??? ?// 列名稱字體
?? ??? ??? ?Font fontChinese = new Font(bfChinese, 12, Font.BOLD);
?? ??? ??? ?// 添加表頭的元素
?? ??? ??? ?Cell cell = new Cell();// 單元格
?? ??? ??? ?/*
?? ??? ??? ? * cell.setHorizontalAlignment(Element.ALIGN_CENTER);
?? ??? ??? ? *
?? ??? ??? ? * cell.setHeader(true);
?? ??? ??? ? *
?? ??? ??? ? * cell.setColspan(4);// 設(shè)置表格為四列
?? ??? ??? ? *
?? ??? ??? ? * cell.setRowspan(2);// 設(shè)置表格為2行
?? ??? ??? ? *
?? ??? ??? ? * table.addCell(cell);
?? ??? ??? ? *
?? ??? ??? ? * table.endHeaders();// 表頭結(jié)束
?? ??? ??? ? */
?? ??? ??? ?// 第一行 第一列 標(biāo)題
?? ??? ??? ?cell = new Cell(new Phrase("支部名稱", fontChinese));
?? ??? ??? ?// 文字水平居中顯示
?? ??? ??? ?cell.setHorizontalAlignment(Element.ALIGN_CENTER);
?? ??? ??? ?table.addCell(cell);
?? ??? ??? ?// 第一行 第二列 內(nèi)容
?? ??? ??? ?cell = new Cell(new Paragraph("集團本部直屬"));
?? ??? ??? ?cell.setHorizontalAlignment(Element.ALIGN_CENTER);
?? ??? ??? ?table.addCell(cell);
?? ??? ??? ?// 第一行 第三列 標(biāo)題
?? ??? ??? ?cell = new Cell(new Phrase("主持人:", fontChinese));
?? ??? ??? ?cell.setHorizontalAlignment(Element.ALIGN_CENTER);
?? ??? ??? ?table.addCell(cell);
?? ??? ??? ?// 第一行 第四列 標(biāo)題
?? ??? ??? ?cell = new Cell("孟非");
?? ??? ??? ?cell.setHorizontalAlignment(Element.ALIGN_CENTER);
?? ??? ??? ?table.addCell(cell);
?? ??? ??? ?// 第二行 第一列 標(biāo)題
?? ??? ??? ?cell = new Cell(new Phrase("時間:", fontChinese));
?? ??? ??? ?cell.setHorizontalAlignment(Element.ALIGN_CENTER);
?? ??? ??? ?table.addCell(cell);
?? ??? ??? ?// 第二行 第二列
?? ??? ??? ?cell = new Cell(new Paragraph("星期一"));
?? ??? ??? ?cell.setHorizontalAlignment(Element.ALIGN_CENTER);
?? ??? ??? ?table.addCell(cell);
?? ??? ??? ?// 第二行 第三列
?? ??? ??? ?cell = new Cell(new Phrase("地點:", fontChinese));
?? ??? ??? ?cell.setHorizontalAlignment(Element.ALIGN_CENTER);
?? ??? ??? ?table.addCell(cell);
?? ??? ??? ?// 第二行 第四列
?? ??? ??? ?cell = new Cell("人民大會堂");
?? ??? ??? ?cell.setHorizontalAlignment(Element.ALIGN_CENTER);
?? ??? ??? ?table.addCell(cell);
?? ??? ??? ?// 第三行 第一例
?? ??? ??? ?cell = new Cell(new Phrase("參加人員出勤情況", fontChinese));
?? ??? ??? ?// 占兩行 注意 itext是無法設(shè)置行高的 所以當(dāng)表格需要占據(jù)一頁時 需要通過合并行 來手動控制表格行高度
?? ??? ??? ?cell.setRowspan(2);
?? ??? ??? ?cell.setHorizontalAlignment(Element.ALIGN_CENTER);
?? ??? ??? ?table.addCell(cell);
?? ??? ??? ?// 第三行 第二例 占三列
?? ??? ??? ?cell = new Cell(new Paragraph("黨支部委員:應(yīng)到? 10 人,實到?? 10 人,缺席 0 人 "));
?? ??? ??? ?cell.setUseAscender(true);
?? ??? ??? ?cell.setVerticalAlignment(Cell.ALIGN_MIDDLE);
?? ??? ??? ?// 占兩行
?? ??? ??? ?cell.setRowspan(2);
?? ??? ??? ?// 占三列
?? ??? ??? ?cell.setColspan(3);
?? ??? ??? ?cell.setHorizontalAlignment(Element.ALIGN_CENTER);
?? ??? ??? ?table.addCell(cell);
?? ??? ??? ?// 第四行 第一列
?? ??? ??? ?cell = new Cell(new Phrase("會議議題:", fontChinese));
?? ??? ??? ?// 垂直居中
?? ??? ??? ?cell.setUseAscender(true);
?? ??? ??? ?cell.setVerticalAlignment(Cell.ALIGN_MIDDLE);
?? ??? ??? ?// 占14行 為了控制改行高度 合并14行
?? ??? ??? ?cell.setRowspan(14);
?? ??? ??? ?cell.setHorizontalAlignment(Element.ALIGN_CENTER);
?? ??? ??? ?table.addCell(cell);
?? ??? ??? ?cell = new Cell(new Paragraph("社會主義社會的和諧發(fā)展"));
?? ??? ??? ?cell.setUseAscender(true);
?? ??? ??? ?cell.setVerticalAlignment(Cell.ALIGN_MIDDLE);
?? ??? ??? ?// 占14行
?? ??? ??? ?cell.setRowspan(14);
?? ??? ??? ?// 占三列
?? ??? ??? ?cell.setColspan(3);
?? ??? ??? ?cell.setHorizontalAlignment(Element.ALIGN_CENTER);
?? ??? ??? ?table.addCell(cell);
?? ??? ??? ?// 第五行
?? ??? ??? ?cell = new Cell(new Phrase("主要內(nèi)容:", fontChinese));
?? ??? ??? ?cell.setUseAscender(true);
?? ??? ??? ?cell.setVerticalAlignment(Cell.ALIGN_MIDDLE);
?? ??? ??? ?// 占14行
?? ??? ??? ?cell.setRowspan(14);
?? ??? ??? ?cell.setHorizontalAlignment(Element.ALIGN_CENTER);
?? ??? ??? ?table.addCell(cell);
?? ??? ??? ?cell = new Cell(new Paragraph("每位參會者提出自己的建議,做相應(yīng)報告"));
?? ??? ??? ?cell.setUseAscender(true);
?? ??? ??? ?cell.setVerticalAlignment(Cell.ALIGN_MIDDLE);
?? ??? ??? ?// 占14行
?? ??? ??? ?cell.setRowspan(14);
?? ??? ??? ?// 占三列
?? ??? ??? ?cell.setColspan(3);
?? ??? ??? ?cell.setHorizontalAlignment(Element.ALIGN_CENTER);
?? ??? ??? ?table.addCell(cell);
?? ??? ??? ?// 第六行
?? ??? ??? ?cell = new Cell(new Phrase("支部決議:", fontChinese));
?? ??? ??? ?cell.setUseAscender(true);
?? ??? ??? ?cell.setVerticalAlignment(Cell.ALIGN_MIDDLE);
?? ??? ??? ?// 占14行
?? ??? ??? ?cell.setRowspan(14);
?? ??? ??? ?cell.setHorizontalAlignment(Element.ALIGN_CENTER);
?? ??? ??? ?table.addCell(cell);
?? ??? ??? ?// 當(dāng)表格行內(nèi)文字 增多時 表格行會自動增寬
?? ??? ??? ?String str = "任命 郭德綱 同學(xué) ";
?? ??? ??? ?cell = new Cell(new Paragraph(str));
?? ??? ??? ?cell.setUseAscender(true);
?? ??? ??? ?cell.setVerticalAlignment(Cell.ALIGN_MIDDLE);
?? ??? ??? ?// 占14行
?? ??? ??? ?cell.setRowspan(14);
?? ??? ??? ?// 占三列
?? ??? ??? ?cell.setColspan(3);
?? ??? ??? ?cell.setHorizontalAlignment(Element.ALIGN_CENTER);
?? ??? ??? ?table.addCell(cell);
?? ??? ??? ?
?? ??? ??? ?// 第七行
?? ??? ??? ?cell = new Cell(new Phrase("記錄人:", fontChinese));
?? ??? ??? ?cell.setHorizontalAlignment(Element.ALIGN_CENTER);
?? ??? ??? ?table.addCell(cell);
?? ??? ??? ?cell = new Cell(new Paragraph());
?? ??? ??? ?cell.setHorizontalAlignment(Element.ALIGN_CENTER);
?? ??? ??? ?table.addCell(cell);
?? ??? ??? ?cell = new Cell(new Phrase("黨支部書記簽字:", fontChinese));
?? ??? ??? ?cell.setHorizontalAlignment(Element.ALIGN_CENTER);
?? ??? ??? ?table.addCell(cell);
?? ??? ??? ?cell = new Cell();
?? ??? ??? ?cell.setHorizontalAlignment(Element.ALIGN_CENTER);
?? ??? ??? ?table.addCell(cell);
?? ??? ??? ?
?? ??? ??? ?document.add(table);
?? ??? ??? ?document.add(new Paragraph("\n"));
?? ??? ??? ?document.close();
?? ??? ??? ?out.flush();
?? ??? ??? ?out.close();
?? ??? ?} catch (FileNotFoundException e) {
?? ??? ??? ?e.printStackTrace();
?? ??? ?} catch (DocumentException e) {
?? ??? ??? ?e.printStackTrace();
?? ??? ?} catch (IOException e) {
?? ??? ??? ?e.printStackTrace();
?? ??? ?}
總結(jié)
以上是生活随笔為你收集整理的itext 导出word的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DeepFM算法
- 下一篇: SpringMVC:返回HTML页面