`
rwjavagbl
  • 浏览: 13929 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

itext实现有表格的导出word

阅读更多
public String exportInfo() throws DocumentException, IOException{
//定义A4页面大小
  Rectangle rectPageSize = new Rectangle(PageSize.A4);
//   rectPageSize = rectPageSize.rotate();
  Document doc = new Document(rectPageSize);//创建文档,并设置纸张的大小
  ByteArrayOutputStream baos = new ByteArrayOutputStream();//创建字节输出流
  RtfWriter2.getInstance(doc, baos);//创建书写器与doc对象关联,并通过书写器将文档输入到输入流
  doc.open();//打开文档
  Font titleFont = setFontStyle("华文中宋", 16f, Font.BOLD);//设置标题的格式
  Font headerFont = setFontStyle("华文中宋", 10.5f, Font.BOLD);//设置标题的格式
  Font contextFont = setFontStyle("宋体", 10.5f, Font.NORMAL );//设置正文格式
          //创建标题
  Paragraph title = new Paragraph( "单位基本情况", FontFactory.getFont(FontFactory.HELVETICA_BOLDOBLIQUE, 18, Font.BOLD,new Color(0, 0, 0))); 
  title.setAlignment(Element.ALIGN_CENTER);
  title.setFont(titleFont);
  doc.add(title);
  Table table = new Table(16);//设置表格
  int[] width ={16,4,4,4,4,4,4,12,20,4,4,4,4,4,4,8};
  table.setWidths(width);//设置每列所占比例
  table.setWidth(95);//占页面宽度
  table.setAlignment(Element.ALIGN_CENTER);// 居中显示    
         // table.setAlignment(Element.ALIGN_MIDDLE);// 纵向居中显示    
          table.setAutoFillEmptyCells(true); // 自动填满    
          table.setBorderWidth(5); // 边框宽度    
          //table.setBorderColor(new Color(0, 125, 255)); // 边框颜色    
          //table.setPadding(5);// 衬距,看效果就知道什么意思了    
          table.setSpacing(0);// 即单元格之间的间距    
          table.setBorder(5);// 边框 
         
          Organization org =organizationService.getInstanceByOrgId(orgId);
          Cell cell = new Cell(new Phrase("01单位名称",headerFont));// 单元格
          cell.setHeader(true);
          cell.setVerticalAlignment(Element.ALIGN_CENTER);
          //cell.setHorizontalAlignment(Element.ALIGN_CENTER);
//          cell.setHorizontalAlignment(10);
          cell.setRowspan(1);// 设置表格为1行
       
          table.addCell(cell);
          cell = new Cell(new Phrase(org.getOrgName(), contextFont));
          cell.setColspan(15);
          table.addCell(cell);
         
          cell = new Cell(new Phrase("02单位地址",headerFont));
          cell.setHeader(true);
          cell.setVerticalAlignment(Element.ALIGN_CENTER);
          //cell.setHorizontalAlignment(Element.ALIGN_CENTER);
//          cell.setHorizontalAlignment(10);
          cell.setRowspan(3);// 设置表格为3行
          table.addCell(cell);
          String[] address = org.getOrgRegion().split(",");
         
          cell = new Cell(new Phrase(address[0]+"省(自治区、直辖市)"+"   "+address[1]+"地(区、市、州、盟)"+"\n"+address[2]+"县(区、市、旗)",contextFont));
          cell.setRowspan(3);
          cell.setVerticalAlignment(Element.ALIGN_CENTER);
          cell.setColspan(15);
          table.addCell(cell);
         
          cell = new Cell( new Phrase("03邮政编码",headerFont));
          cell.setHeader(true);
         //cell.setVerticalAlignment(Element.ALIGN_CENTER);
          //cell.setHorizontalAlignment(Element.ALIGN_CENTER);
//          cell.setHorizontalAlignment(10);
          cell.setRowspan(1);// 设置表格为1行
          table.addCell(cell);
          cell = new Cell(new Phrase(org.getZipCode(),contextFont));
          cell.setColspan(7);
          table.addCell(cell);
         
          cell = new Cell(new Phrase("04行政区划代码",headerFont));
          //cell.setHeader(true);
          //cell.setVerticalAlignment(Element.ALIGN_CENTER);
          //cell.setHorizontalAlignment(Element.ALIGN_CENTER);
          //cell.setRowspan(1);
          table.addCell(cell);
          cell = new Cell(new Phrase(org.getAdmDvsCode()+"",contextFont));
          cell.setColspan(7);
          table.addCell(cell);
         
          cell = new Cell(new Phrase("05单位负责人",headerFont));
          cell.setHeader(true);
          cell.setVerticalAlignment(Element.ALIGN_CENTER);
          //cell.setHorizontalAlignment(Element.ALIGN_CENTER);
          cell.setRowspan(2);
          table.addCell(cell);
         
          cell = new Cell(new Phrase("姓 名",contextFont));
          cell.setColspan(3);
          cell.setHorizontalAlignment(Element.ALIGN_CENTER);
          table.addCell(cell);
          cell = new Cell(new Phrase(org.getOrgRulerName(),contextFont));
          cell.setColspan(4);
          table.addCell(cell);
          cell = new Cell(new Phrase("职务/职称",contextFont));
          cell.setColspan(1);
          cell.setHorizontalAlignment(Element.ALIGN_CENTER);
          table.addCell(cell);
          cell = new Cell(new Phrase(org.getOrgRulerPost(),contextFont));
          cell.setColspan(7);
          table.addCell(cell);
          cell = new Cell(new Phrase("办公电话",contextFont));
          cell.setColspan(3);
          cell.setHorizontalAlignment(Element.ALIGN_CENTER);
          table.addCell(cell);
          cell = new Cell(new Phrase(org.getOrgRulerPhone(),contextFont));
          cell.setColspan(4);
          table.addCell(cell);
          cell = new Cell(new Phrase("电子邮件",contextFont));
          cell.setColspan(1);
          cell.setHorizontalAlignment(Element.ALIGN_CENTER);
          table.addCell(cell);
          cell = new Cell(new Phrase(org.getOrgRulerEmail(),contextFont));
          cell.setColspan(7);
          table.addCell(cell);
        
          cell = new Cell(new Phrase("06责任部门",headerFont));
          cell.setHeader(true);
          //cell.setVerticalAlignment(Element.ALIGN_CENTER);
          //cell.setHorizontalAlignment(Element.ALIGN_CENTER);
          cell.setRowspan(1);
          table.addCell(cell);
          cell = new Cell(new Phrase(org.getOrgRespDept(),contextFont));
          cell.setColspan(15);
          table.addCell(cell);
         
          cell = new Cell(new Phrase("07责任部门联系人",headerFont));
          cell.setHeader(true);
          cell.setVerticalAlignment(Element.ALIGN_CENTER);
          //cell.setHorizontalAlignment(Element.ALIGN_CENTER);
          cell.setRowspan(3);
          table.addCell(cell);
          cell = new Cell(new Phrase("姓 名",contextFont));
          cell.setColspan(3);
          cell.setHorizontalAlignment(Element.ALIGN_CENTER);
          table.addCell(cell);
          cell = new Cell(new Phrase(org.getContactPerson(),contextFont));
          cell.setColspan(4);
          table.addCell(cell);
          cell = new Cell(new Phrase("职务/职称",contextFont));
          cell.setHorizontalAlignment(Element.ALIGN_CENTER);
          cell.setColspan(1);
          table.addCell(cell);
          cell = new Cell(new Phrase(org.getContactPersonPost(),contextFont));
          cell.setColspan(7);
          table.addCell(cell);
          cell = new Cell(new Phrase("办公电话",contextFont));
          cell.setHorizontalAlignment(Element.ALIGN_CENTER);
          cell.setColspan(3);
          table.addCell(cell);
          cell = new Cell(new Phrase(org.getContactPhone(),contextFont));
          cell.setColspan(4);
          table.addCell(cell);
          cell = new Cell(new Phrase("电子邮件",contextFont));
          cell.setHorizontalAlignment(Element.ALIGN_CENTER);
          cell.setVerticalAlignment(Element.ALIGN_CENTER);
          cell.setRowspan(2);
          cell.setColspan(1);
          table.addCell(cell);
          cell = new Cell(new Phrase(org.getContactEmail(),contextFont));
          cell.setColspan(7);
          cell.setVerticalAlignment(Element.ALIGN_CENTER);
          cell.setRowspan(2);
          table.addCell(cell);
          cell = new Cell(new Phrase("移动电话",contextFont));
          cell.setHorizontalAlignment(Element.ALIGN_CENTER);
          cell.setRowspan(1);
          cell.setColspan(3);
          table.addCell(cell);
          cell = new Cell(new Phrase(org.getContactMobile(),contextFont));
          cell.setColspan(4);
          table.addCell(cell);
         
          cell = new Cell(new Phrase("08隶属关系",headerFont));
          cell.setHeader(true);
          cell.setVerticalAlignment(Element.ALIGN_CENTER);
          //cell.setHorizontalAlignment(Element.ALIGN_CENTER);
          cell.setRowspan(3);
          table.addCell(cell);
          String MemberShip = operLogService.selectValueFromDict("super_unit", org.getOrgMemberShip());
          List<Object[]> ol = new ArrayList<Object[]>();
          ol = operLogService.getKeyValueData(null, "super_unit");
         String strms ="";
          for(int i = 0;i<ol.size();i++){
          if(ol.get(i)[1].equals(MemberShip)){
          strms+=  "☑"+ol.get(i)[1]+"  ";
          }else{
          strms+="□"+ol.get(i)[1]+"  ";
          }
          if(i==2){
          strms+="\n";
          }
          }
          cell = new Cell(new Phrase(strms,contextFont));
          cell.setColspan(15);
          cell.setVerticalAlignment(Element.ALIGN_CENTER);
          cell.setRowspan(3);
          table.addCell(cell);
        
          cell = new Cell(new Phrase("09单位类型",headerFont));
          cell.setHeader(true);
          //cell.setVerticalAlignment(Element.ALIGN_CENTER);
          //cell.setHorizontalAlignment(Element.ALIGN_CENTER);
          cell.setRowspan(1);
          table.addCell(cell);
          String OrgType = operLogService.selectValueFromDict("unit_type", org.getOrgType());
          ol = operLogService.getKeyValueData(null, "unit_type");
          String strType ="";
           for(int i = 0;i<ol.size();i++){
           if(ol.get(i)[1].equals(OrgType)){
         strType+=  "☑"+ol.get(i)[1]+"  ";
           }else{
         strType+="□"+ol.get(i)[1]+"  ";
           }
           }
          cell = new Cell(new Phrase(strType,contextFont));
          cell.setColspan(15);
          table.addCell(cell);
         
          cell = new Cell( new Phrase("10行业类别",headerFont));
          cell.setHeader(true);
          cell.setVerticalAlignment(Element.ALIGN_CENTER);
          //cell.setHorizontalAlignment(Element.ALIGN_CENTER);
          cell.setRowspan(1);
          table.addCell(cell);
          String OrgIndSector = operLogService.selectValueFromDict("industry_cat", org.getOrgIndSector());
          ol = operLogService.getKeyValueData(null, "industry_cat");
          String strOis ="";
           for(int i = 0;i<ol.size();i++){
           String blankNum = "";
           String str = ol.get(i)[1].toString();
        if(str.length()==2){
      blankNum=" ";
        }else if(str.length()==4){
      blankNum=" ";
        }else if(str.length()==6){
      blankNum=" ";
        }else if(str.length()==8){
      blankNum="    ";
        }else if(str.length()==9){
      blankNum="  ";
        }
           if(ol.get(i)[1].equals(OrgIndSector)){
          
         strOis+=  "☑"+ol.get(i)[1]+blankNum;
           }else{
         strOis+="□"+ol.get(i)[1]+blankNum;
           }
           if((i+1)%4==0){
         strOis+="\n";
           }
           }
          cell = new Cell(new Phrase(strOis,contextFont));
          cell.setColspan(15);
          table.addCell(cell);
         
        ..............(省略无用)
          doc.add(table);
          doc.close();
          fileInputStream = new ByteArrayInputStream(baos.toByteArray());
          baos.close();
         
          return "exportSuccess";
         
         
}
分享到:
评论
2 楼 hbsfxyzw2008 2014-06-19  
麻痹的,那里抄来的,你运行的起来吗。写这种坑人的东西还不如不写
1 楼 bommeibo 2012-11-27  
楼主,我最近也在用itext生成word,但是我的字体怎么设置都不对,我设置华文仿宋字体,生成pdf文档字体是正确的,但是生成doc文档字体一直是华文中宋,不知道是怎么回事,LZ能将你的setfontstyle方法共享一下吗?
我的方法是这样的:
/**
	 * 字体父类对象
	 */
	public static BaseFont bf ;
	static{
		try {
			//创建默认字体
			bf = BaseFont.createFont("F://STFANGSO.TTF",BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
			//bf =  BaseFont.createFont("STSongStd-Light", "UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);
		} catch (DocumentException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
public static Font getFont(){
		Font ft = new Font(bf,12,Font.NORMAL);
		return ft;
	}

求解

相关推荐

    itext 实现导出word

    **正文** ...总的来说,使用itext实现导出Word是一项涉及多个步骤和技术的任务,需要对PDF和Word的内部结构有深入的理解,以及一定的编程技巧。通过学习和实践,可以创建出高效且可靠的转换工具。

    itext jar包组合-导出word文档案例,解决中文乱码问题

    在描述中提到的“导出word文档案例”,我们可以按照以下步骤来实现: 1. **初始化Document对象**:这是iText文档的基础,用于定义文档的结构。 2. **创建Paragraph和Table**:Paragraph用于添加文本,而Table可以...

    利用Itext画模板导出word,纯java实现

    在“利用Itext画模板导出word,纯java实现”这个主题中,主要涉及以下几个知识点: 1. **模板设计**:模板是预先设定好布局和格式的文档,通常包含占位符,这些占位符在程序运行时会被实际数据替换。在Itext中,...

    Itext实现自动生成pdf word文件

    4. **表格和列表**:iText提供高级的表格处理功能,支持多列、合并单元格、自动调整列宽等。同时,它也可以轻松地创建和格式化列表。 5. **字体支持**:iText支持多种字体,包括Unicode和CJK(Chinese, Japanese, ...

    itext 导出 word 实例

    在IT行业中,iText是一个非常流行的Java库,用于创建、修改和处理PDF文档。然而,这个库也提供了将数据导出到其他格式的功能,包括Microsoft Word...不过,对于简单的表格导出任务,iText是一个快速且有效的解决方案。

    Java 使用iText生成word文档,有表格,图片,文本有颜色

    在这个场景中,我们将探讨如何利用iText来生成包含表格、图片以及带有颜色的文本的Word文档。 首先,要使用iText生成Word文档,你需要在项目中引入iText的库。iText提供了一个名为iText-for-Office的模块,专门用于...

    利用IText导出word的例子

    在这个例子中,我们将深入探讨如何利用IText库来导出Word文档,以便于在各种场合下生成定制化的报告、合同或任何其他需要文字处理的文档。 首先,了解IText库的基本概念是非常重要的。IText提供了丰富的API,允许...

    itext 导出word 下载这个示例

    【itext导出Word:创建和操作Word文档的利器】 在IT行业中,处理文档格式转换是常见的需求之一,尤其在企业级应用中。iText是一个强大的开源Java库,专门用于处理PDF文档,但它也提供了创建和操作Word文档(.doc或....

    利用IText导出word

    本篇文章将详细讲解如何利用iText库导出Word文档,以及相关的编程知识点。 首先,我们需要了解iText的基本概念。iText是一个开源的Java库,由iText Group NV开发,它允许开发者在Java或.NET环境中生成、修改和处理...

    Itext导出Word文档的例子

    在这个特定的例子中,我们将讨论如何使用Itext来导出Word文档。虽然Itext的主要功能是处理PDF,但通过其扩展库,它也能支持其他格式,包括Microsoft Word的DOC和DOCX格式。 首先,我们来看一下Itext的核心库:`...

    Itext控件 介绍如何导出word文档 不需要Word

    在本文中,我们将详细介绍如何利用Itext控件在不需要Word的情况下导出Word文档。 首先,了解如何使用Itext控件创建PDF文档。创建PDF的基本步骤如下: 1. **创建Document对象**:`Document document = new Document...

    iText 2 1 7 java导出word表格所需jar

    iText是一款功能强大的Java库,主要...总的来说,使用iText 2.1.7导出Word表格需要对Java编程、iText API以及可能的文件转换流程有深入理解。在实际应用中,还需要根据具体需求进行定制化开发,以满足各种复杂场景。

    JAVA ITEXT 导出试卷

    总的来说,"JAVA ITEXT 导出试卷"是一个利用Java和iText库实现的自动化试卷生成系统。它涉及的知识点包括Java编程基础、iText库的使用、PDF文档结构的理解以及可能的数据解析和文件操作。通过这样的系统,教育从业者...

    使用IText生成PDF和WORD文档

    IText是一款广泛使用的Java库,专门用于创建和编辑PDF及Word文档。在本文中,我们将深入探讨如何利用IText库生成这两种格式的文档,并通过实际的源码示例来理解其工作原理。 首先,让我们从PDF(Portable Document ...

    itext导出word和pdf

    **iText导出Word** 虽然iText的主要功能是处理PDF,但也可以通过将PDF转换为DOCX格式间接实现Word文档的创建。这通常涉及到先使用iText生成PDF,然后再用第三方工具(如Apache POI)将PDF转换为Word。然而,这种...

    使用itext方式导出word格式

    标题中的“使用iText方式导出word格式”指的是利用iText这个开源Java库来创建Microsoft Word文档。iText主要用于PDF文档处理,但它也提供了一种将内容导出为其他格式的功能,包括Word(.doc或.docx)。 iText是一个...

    itext 导出word 示例(内含demo类和所需的jra包)

    为了实现Word导出,开发者需要理解RTF格式的规则,因为iText通过RTFWriter将PDF内容转换为Word兼容的格式。这涉及到理解如何表示文本样式、图像、超链接等元素在RTF中的语法。 总之,这个示例提供了一个使用iText库...

    使用ITEXT导出PDF、WORD,APACHE POI导出EXCEL报表文件

    本文将深入探讨如何使用ITEXT库导出PDF和Word,以及利用Apache POI库导出Excel报表文件。 首先,让我们来了解ITEXT库。ITEXT是一个开源Java库,专门用于创建和修改PDF文档。使用ITEXT,你可以方便地生成包含文本、...

    Itext导出word

    通过以上步骤,我们可以使用Itext将包含富文本、图片和表格的内容导出为Word文档。虽然Itext主要用于PDF处理,但结合其他库,它也能胜任Word文档的生成任务。在实际项目中,确保正确处理各种边界情况和异常,以提供...

Global site tag (gtag.js) - Google Analytics