`
huanhuan1022
  • 浏览: 54935 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

使用POI生成Excel文件

    博客分类:
  • java
阅读更多

Apache的Jakata项目的POI子项目,目标是处理ole2对象。 POI可以到 http://www.apache.org/dyn/closer.cgi/jakarta/poi/ 下载。 编译好的jar主要有这样4个:poi包,poi Browser包,poi hdf包,poi hssf例程包。实际运行时,需要有poi包就可以了。

HSSF提供给用户使用的对象在org.apache.poi.hssf.usermodel包中,主要部分包括Excell对象,样式和格式,还有辅助操作。有以下几种对象:
HSSFWorkbook excell的文档对象
HSSFSheet excell的表单
HSSFRow excell的行
HSSFCell excell的格子单元
HSSFFont excell字体
HSSFName 名称
HSSFDataFormat 日期格式

在poi1.7中才有以下2项:
HSSFHeader sheet头
HSSFFooter sheet尾

和这个样式
HSSFCellStyle cell样式

辅助操作包括
HSSFDateUtil 日期
HSSFPrintSetup 打印
HSSFErrorConstants 错误信息表

下面是一个简单的例子:

   /** 
 * 
  */ 
 package  com.justinmobile.payease.admin.commons.excel;

 import  java.io.FileNotFoundException;
 import  java.io.FileOutputStream;
 import  java.io.IOException;
 import  java.util.Calendar;

 import  org.apache.poi.hssf.usermodel.HSSFCell;
 import  org.apache.poi.hssf.usermodel.HSSFCellStyle;
 import  org.apache.poi.hssf.usermodel.HSSFDataFormat;
 import  org.apache.poi.hssf.usermodel.HSSFRow;
 import  org.apache.poi.hssf.usermodel.HSSFSheet;
 import  org.apache.poi.hssf.usermodel.HSSFWorkbook;

 /** */ /** 
 * 生成导出Excel文件对象
 * 
 *  @author  John.Zhu
 * 
  */ 
  public   class  XLSExport   {

     //  设置cell编码解决中文高位字节截断 
      private   static   short  XLS_ENCODING  =  HSSFWorkbook.ENCODING_UTF_16;

     //  定制日期格式 
      private   static  String DATE_FORMAT  =   " m/d/yy " ;  //  "m/d/yy h:mm"

     //  定制浮点数格式 
      private   static  String NUMBER_FORMAT  =   " #,##0.00 " ;

     private  String xlsFileName;

     private  HSSFWorkbook workbook;

     private  HSSFSheet sheet;

     private  HSSFRow row;

     /** */ /** 
     * 初始化Excel
     * 
     *  @param  fileName
     *            导出文件名
      */ 
      public  XLSExport(String fileName)   {
         this .xlsFileName  =  fileName;
         this .workbook  =   new  HSSFWorkbook();
         this .sheet  =  workbook.createSheet();
    } 
 
      /** */ /** 
     * 导出Excel文件
     * 
     *  @throws  XLSException
      */ 
      public   void  exportXLS()  throws  XLSException   {
         try    {
            FileOutputStream fOut  =   new  FileOutputStream(xlsFileName);
            workbook.write(fOut);
            fOut.flush();
            fOut.close();
        }   catch  (FileNotFoundException e)   {
             throw   new  XLSException( " 生成导出Excel文件出错! " , e);
        }   catch  (IOException e)   {
             throw   new  XLSException( " 写入Excel文件出错! " , e);
        } 
 
    } 
 
      /** */ /** 
     * 增加一行
     * 
     *  @param  index
     *            行号
      */ 
      public   void  createRow( int  index)   {
         this .row  =   this .sheet.createRow(index);
    } 
 
      /** */ /** 
     * 设置单元格
     * 
     *  @param  index
     *            列号
     *  @param  value
     *            单元格填充值
      */ 
      public   void  setCell( int  index, String value)   {
        HSSFCell cell  =   this .row.createCell(( short ) index);
        cell.setCellType(HSSFCell.CELL_TYPE_STRING);
        cell.setEncoding(XLS_ENCODING);
        cell.setCellValue(value);
    } 
 
      /** */ /** 
     * 设置单元格
     * 
     *  @param  index
     *            列号
     *  @param  value
     *            单元格填充值
      */ 
      public   void  setCell( int  index, Calendar value)   {
        HSSFCell cell  =   this .row.createCell(( short ) index);
        cell.setEncoding(XLS_ENCODING);
        cell.setCellValue(value.getTime());
        HSSFCellStyle cellStyle  =  workbook.createCellStyle();  //  建立新的cell样式 
         cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat(DATE_FORMAT));  //  设置cell样式为定制的日期格式 
         cell.setCellStyle(cellStyle);  //  设置该cell日期的显示格式 
     } 
 
      /** */ /** 
     * 设置单元格
     * 
     *  @param  index
     *            列号
     *  @param  value
     *            单元格填充值
      */ 
      public   void  setCell( int  index,  int  value)   {
        HSSFCell cell  =   this .row.createCell(( short ) index);
        cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
        cell.setCellValue(value);
    } 
 
      /** */ /** 
     * 设置单元格
     * 
     *  @param  index
     *            列号
     *  @param  value
     *            单元格填充值
      */ 
      public   void  setCell( int  index,  double  value)   {
        HSSFCell cell  =   this .row.createCell(( short ) index);
        cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
        cell.setCellValue(value);
        HSSFCellStyle cellStyle  =  workbook.createCellStyle();  //  建立新的cell样式 
         HSSFDataFormat format  =  workbook.createDataFormat();
        cellStyle.setDataFormat(format.getFormat(NUMBER_FORMAT));  //  设置cell样式为定制的浮点数格式 
         cell.setCellStyle(cellStyle);  //  设置该cell浮点数的显示格式 
     } 
 
} 

 调用的过程:

 

  /** */ /** 
 * 
  */ 
 package  com.justinmobile.payease.admin.commons.excel;

 import  java.util.Calendar;

 /** */ /** 
 * 导出Excel示例
 * 
 *  @author  John.Zhu
 * 
  */ 
  public   class  XLSDemo   {

     public   static   void  main(String[] args)   {
        System.out.println( " 开始导出Excel文件 " );
        XLSExport e  =   new  XLSExport( " d:/test.xls " );
        e.createRow( 0 );
        e.setCell( 0 ,  " 编号 " );
        e.setCell( 1 ,  " 名称 " );
        e.setCell( 2 ,  " 日期 " );
        e.setCell( 3 ,  " 金额 " );
        e.createRow( 1 );
        e.setCell( 0 ,  1 );
        e.setCell( 1 ,  " 工商银行 " );
        e.setCell( 2 , Calendar.getInstance());
        e.setCell( 3 ,  111123.99 );
        e.createRow( 2 );
        e.setCell( 0 ,  2 );
        e.setCell( 1 ,  " 招商银行 " );
        e.setCell( 2 , Calendar.getInstance());
        e.setCell( 3 ,  222456.88 );
         try    {
            e.exportXLS();
            System.out.println( " 导出Excel文件[成功] " );
        }   catch  (XLSException e1)   {
            System.out.println( " 导出Excel文件[失败] " );
            e1.printStackTrace();
        } 
    } 
} 

 

 

分享到:
评论

相关推荐

    JAVA使用POI生成Excel文件

    这篇博客"JAVA使用POI生成Excel文件"主要介绍了如何利用Apache POI来创建和操作Excel文档。 首先,我们需要了解Apache POI的基本概念。Apache POI是Apache软件基金会的一个开源项目,它提供了Java API,使得开发者...

    poi生成excel实例

    7. "POI中文编码及多工作表输出.files"、"利用Java 创建和读取Excel文档.files"、"使用POI生成Excel文件,可以自动调整excel列宽(这个不错).files"、"使用POI生成Excel文件(详细).files":这些可能是与上述HTML...

    java的poi生成excel图表demo

    通过这个“java的poi生成excel图表demo”,我们可以学习如何利用POI创建动态的、数据驱动的Excel曲线图,进一步提升数据的可视性和理解性。这个压缩包中的“EexcelChart”可能是示例代码、测试数据或生成的Excel文件...

    使用poi生成Excel所需要的jar包

    在这个场景中,"使用poi生成Excel所需要的jar包"指的是利用Apache POI库来生成Excel文件。POI-3.9.jar是Apache POI项目的一个版本,包含了所有必要的类和方法,让我们可以处理Excel的XLS和XLSX格式。 首先,Apache ...

    java调用poi生成excel文件

    java代码调用poi架包, 把数据生成excel文件, 导出到文件

    POI导出Excel文件

    它不涉及网络交互,而是直接在本地生成Excel文件。步骤与Servlet类似,只是数据写入FileOutputStream,生成的文件保存在本地文件系统中。 以下是一个简化的示例,演示了如何使用POI导出Excel: ```java import org...

    使用POI生成EXCEL

    标题中的“使用POI生成EXCEL”指的是使用Apache POI库来创建Microsoft Excel文件的过程。Apache POI是一个开源项目,提供了Java API,可以用来读写Microsoft Office格式的文件,包括Excel(.xls和.xlsx格式)。这个...

    java poi 根据excel模板生成excel文件

    在本文中,我们将深入探讨如何使用Java POI库根据已有的Excel模板生成新的Excel文件。 首先,理解“模板”在Excel中的概念非常重要。模板通常包含预设的格式、样式、公式和数据结构,可以作为创建新文件的基础。在...

    Java POI 生成Excel(xlsx)文件

    生成Excel文件的基本步骤如下: 1. **创建Workbook对象**:Workbook是Excel文件的顶级容器,类似于Excel工作簿。你可以通过`XSSFWorkbook()`创建一个.xlsx类型的Workbook。 ```java import org.apache.poi.xssf....

    poi生成excel表格

    Apache POI 是一个开源项目...以上是Apache POI生成Excel表格的基本知识点和操作步骤。通过这些示例,你可以理解如何在Java应用中利用POI进行Excel文件的创建、读取和修改,以及如何结合数据库操作实现数据的导入导出。

    android中poi生成word文档和excel文档

    在标题“android中poi生成word文档和excel文档”中提到的使用POI库生成Word和Excel文档,主要涉及到以下几个关键知识点: 1. **Apache POI 概述**:Apache POI 是一个开源项目,提供了一套API,用于读写Microsoft ...

    POI生成Excel POI操作Excel POI读取Excel POI类库

    **POI生成Excel** 生成Excel文件主要涉及以下步骤: 1. **创建Workbook对象**:这是Excel文件的顶级容器,可以是XSSFWorkbook(.xlsx格式)或HSSFWorkbook(.xls格式)。 2. **创建Sheet对象**:Sheet代表Excel...

    java使用POI导出 Excel工具类

    java使用POI导出 Excel+图片工具类 ,里面含有poi jar包,只调用接口即可直接保存Excel。使用的时候需先把数据封装,具体包装需根据实际导出数据进行处理。文件demo中只提供包装格式。

    POI 生成EXCEL2007【含例子】

    标题 "POI 生成EXCEL2007【含例子】" 涉及到的知识点主要集中在Apache POI库的使用上,这是一个强大的Java API,用于读取、写入和修改Microsoft Office格式的文件,特别是Excel文件。在这个场景中,重点是创建和操作...

    SpringMVC POI Excel 生成导出

    "SpringMVC POI Excel 生成导出" 这个标题指的是使用 SpringMVC 框架和 POI 库生成 Excel 文件,并将其导出。这个标题包含了三个关键词:SpringMVC、POI 和 Excel,它们是我们今天要探讨的主题。 描述解释 在这个...

    POI操作Excel完美生成水印

    以下是一个简化的示例代码片段,展示了如何使用Apache POI生成水印: ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.*; //... 加载Excel文件 ... // 创建文字图片 ...

    Java POI 生成Excel时显示货币格式

    在使用Java POI生成Excel时,为了使数据更易读和专业,我们经常需要设置单元格的格式,特别是当涉及到金额时,使用货币格式可以使数字更加直观。以下是一段示例代码,展示了如何在Excel单元格中设置货币格式: ```...

    POI使用Excel模板文件循环输出行并导出Excel

    在这个特定的例子中,我们将讨论如何使用POI库基于一个Excel模板文件循环输出数据行,并将结果导出为新的Excel文件。 首先,我们需要理解POI库的基本概念。POI提供了HSSF(Horizontally SpreadSheet Format)和XSSF...

    使用POI进行Excel文件下载的示例工程

    在"使用POI进行Excel文件下载"的示例工程中,可能会包含一个控制器或服务类,它负责生成Excel文件,并将其转换为HTTP响应。这个示例工程可能还包含了展示如何使用模板来生成复杂格式的Excel文件,或者如何从数据库中...

    使用POI在Excel中动态生成图表工具类(支持柱状、组合、环状图、折线图、等常用图)

    **四、保存Excel文件** 最后,不要忘记将工作簿写入文件并关闭: ```java FileOutputStream out = new FileOutputStream("output.xlsx"); workbook.write(out); out.close(); workbook.close(); ``` 以上就是使用...

Global site tag (gtag.js) - Google Analytics