PC6下载站

分类分类

itext生成word文档方法

关注+2011-10-28作者:lff

从事程序员职业的朋友可能都会遇到类似情况,经常需要将一个表格导出成word来供客户打印,这个解决问题的方法可以用itext生成word文档方法来实现。当然用excel导出也可以实现,但是如果表格主要是文字信息的话使用word文档更合适。
需要的jar包:iTextAsian.jar,iText-rtf-2.1.3.jar,iText-2.1.3.jar;
参考代码:
response.addHeader("Content-disposition", "attachment;filename=\"" + new String("信息处理表.doc".getBytes("gb2312"), "ISO8859-1")); 

        String letrId = request.getParameter("letrId"); 

         // 创建word文档,并设置纸张的大小 

        com.lowagie.text.Document document = new com.lowagie.text.Document(PageSize.A4); 

        try { 

            RtfWriter2.getInstance(document,"e:\123.doc"); 

            document.open(); 

            Font f = new Font(); 

            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); 

            // 设置中文字体 

             BaseFont bfFont =  BaseFont.createFont("STSongStd-Light", "UniGB-UCS2-H",BaseFont.NOT_EMBEDDED); 

            //创建有三列的表格 

            Table table = new Table(3); 

            table.setBorderWidth(1); 

            table.setBorderColor(Color.BLACK); 

            table.setPadding(0); 

            table.setSpacing(0); 

            //添加表头的元素 

            Cell cell = new Cell(title);// 单元格 

            cell.setHorizontalAlignment(Element.ALIGN_CENTER); 

            cell.setHeader(true); 

            cell.setColspan(3);// 设置表格为三列 

            cell.setRowspan(2);// 设置表格为2行 

            table.addCell(cell); 

            table.endHeaders();// 表头结束 

            cell = new Cell("时间:"); 

            cell.setHorizontalAlignment(Element.ALIGN_CENTER); 

            table.addCell(cell); 

            cell = new Cell(new Paragraph((vl.getLetrDate()).toString())); 

            cell.setHorizontalAlignment(Element.ALIGN_CENTER); 

            cell.setColspan(2); 

            table.addCell(cell); 

            cell = new Cell("重要程度:"); 

            cell.setHorizontalAlignment(Element.ALIGN_CENTER); 

            table.addCell(cell); 

            cell = new Cell(new Paragraph((vl.getImptLevel()).toString())); 

            cell.setHorizontalAlignment(Element.ALIGN_CENTER); 

            cell.setColspan(2); 

            table.addCell(cell); 

            //测试1 

            cell = new Cell("测试1:"); 

            cell.setRowspan(5);// 当前单元格占两行,纵向跨度 

            cell.setHorizontalAlignment(Element.ALIGN_CENTER); 

            table.addCell(cell); 

            table.addCell("姓名:"); 

            table.addCell(vl.getPernName()); 

            table.addCell("性别:"); 

            table.addCell(vl.getPernSex()); 

            table.addCell("公司:"); 

            table.addCell(vl.getPernUnit()); 

            table.addCell("职务:"); 

            table.addCell(vl.getPernPost()); 

            table.addCell("地址:"); 

            table.addCell(vl.getPernAddress()); 

            // 测试2 

            cell = new Cell("测试2:"); 

            cell.setRowspan(4);// 当前单元格占两行,纵向跨度 

            cell.setHorizontalAlignment(Element.ALIGN_CENTER); 

            table.addCell(cell); 

            table.addCell("姓名:"); 

            table.addCell(vl.getWrirName()); 

            table.addCell("单位 :"); 

            table.addCell(vl.getWrirOrganization()); 

            table.addCell("性别:"); 

            table.addCell(vl.getWrirSex()); 

            table.addCell("电话:"); 

            table.addCell(vl.getWrirTnur()); 

            // 简要内容 

            cell = new Cell("简要内容:"); 

            cell.setHorizontalAlignment(Element.ALIGN_CENTER); 

            table.addCell(cell); 

            cell = new Cell(new Paragraph(vl.getLetrNote())); 

            cell.setColspan(2); 

            table.addCell(cell); 

            // 测试3 

            cell = new Cell("测试3:"); 

            cell.setHorizontalAlignment(Element.ALIGN_CENTER); 

            table.addCell(cell); 

            cell = new Cell(new Paragraph(vl.getDeptVerifyOpinion())); 

            cell.setColspan(2); 

            table.addCell(cell); 

            // 测试4 

            cell = new Cell("测试4:"); 

            cell.setHorizontalAlignment(Element.ALIGN_CENTER); 

            table.addCell(cell); 

            cell = new Cell(new Paragraph(vl.getChargeVerifyOpinion())); 

            cell.setColspan(2); 

            table.addCell(cell); 

            //测试5 

            cell = new Cell("测试5:"); 

            cell.setHorizontalAlignment(Element.ALIGN_CENTER); 

            table.addCell(cell); 

            cell = new Cell(new Paragraph(vl.getHandleContent())); 

            cell.setColspan(2); 

            table.addCell(cell); 

            document.add(table); 

            document.add(new Paragraph("\n")); 

            document.close(); 

        } catch (FileNotFoundException e) { 

            e.printStackTrace(); 

        } catch (DocumentException e) { 

            e.printStackTrace(); 

        } catch (IOException e) { 

            e.printStackTrace(); 

        } 

在word中可以按照你所要求的格式,利用itext的table、cell、图片等“画”出想要的文档格式,然后再将数据往其中填充;如果想要将报表导出成pdf格式的,用itext也可以很轻松的实现。

word2003免费完整版win748KB6.8
下载
excel2003免费完整版48M7.7
下载
Foxit Reader(PDF阅读软件)v6.1.4.0217 中文绿色版160.7M8.0
下载

展开全部

相关文章

更多+相同厂商

热门推荐

  • 最新排行
  • 最热排行
  • 评分最高
排行榜

    点击查看更多

      点击查看更多

        点击查看更多

        说两句网友评论

          我要评论...
          取消