itext 导出word


        Rectangle rectPageSize = new Rectangle(PageSize.A4);
        // 创建word文档,并设置纸张的大小
        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对象关联,通过书写器(Writer)可以将文档写入到磁盘中
            RtfWriter2.getInstance(document, out);
            document.open();
            String topic = "党员信息表";
            // 设置抬头字体
            Paragraph p = new Paragraph(topic, new Font(Font.NORMAL, 18,
                    Font.BOLDITALIC, new Color(0, 0, 0)));
            p.setAlignment(1);
            document.add(p);

            // 创建有四列的表格
            Table table = new Table(4);
            // 每列所占比例
            int width[] = { 20, 30, 20, 30 };
            table.setLocked(true);
            // 设置每列所占比例
            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);

            // 设置中文字体
            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);// 设置表格为四列
             *
             * cell.setRowspan(2);// 设置表格为2行
             *
             * table.addCell(cell);
             *
             * table.endHeaders();// 表头结束
             */
            // 第一行 第一列 标题
            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));
            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是无法设置行高的 所以当表格需要占据一页时 需要通过合并行 来手动控制表格行高度
            cell.setRowspan(2);
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            table.addCell(cell);
            // 第三行 第二例 占三列
            cell = new Cell(new Paragraph("党支部委员:应到  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("社会主义社会的和谐发展"));
            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);
            cell = new Cell(new Paragraph("每位参会者提出自己的建议,做相应报告"));
            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);
            // 当表格行内文字 增多时 表格行会自动增宽
            String str = "任命 郭德纲 同学 ";
            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();

        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值