`
forhope
  • 浏览: 366579 次
  • 性别: Icon_minigender_1
  • 来自: 帝都
社区版块
存档分类
最新评论

POI生成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;

public class ReadXlsTest {
	// 设置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 ReadXlsTest(String fileName) {
		this.xlsFileName = fileName;
		this.workbook = new HSSFWorkbook();
		this.sheet = workbook.createSheet();
	}

	/**
	 * 导出Excel文件
	 * 
	 * @throws XLSException
	 */
	public void exportXLS() throws Exception {
		try {
			FileOutputStream fOut = new FileOutputStream(xlsFileName);
			workbook.write(fOut);
			fOut.flush();
			fOut.close();
		} catch (FileNotFoundException e) {
			throw new Exception(" 生成导出Excel文件出错! ", e);
		} catch (IOException e) {
			throw new Exception(" 写入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浮点数的显示格式
	}
	
	 public   static   void  main(String[] args)   {
	        System.out.println( " 开始导出Excel文件 " );
	        ReadXlsTest e  =   new  ReadXlsTest("C://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  (Exception e1)   {
	            System.out.println( " 导出Excel文件[失败] " );
	            e1.printStackTrace();
	        } 
	    } 

}

Excel文档的模板可以从文件系统中引入,再将数据插入即可:
        HSSFWorkbook wb = null;
        InputStream is = null;
        try
        {
            is = getClass().getResourceAsStream("/com/util/abc.xls");
            POIFSFileSystem fs = new POIFSFileSystem(is);
            wb = new HSSFWorkbook(fs);
        }catch(Exception e){
           e.printStackTrace();
        }finally{
           try{
             if(null!=is)
                is.close();
            }catch(Exception e){
           e.printStackTrace();
           }
        }

分享到:
评论

相关推荐

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

    6. **生成Excel文档**:XSSF API允许开发者创建新的Excel工作簿,添加工作表,设置单元格值,格式化单元格等。从XML数据生成Excel,可能需要解析XML,然后根据数据创建对应的行和列。 7. **PoiWordModel**:这个...

    poi生成excel实例

    标题中的“poi生成excel实例”指的是使用Apache POI库来创建和操作Microsoft Excel文件的实践案例。Apache POI是开源的Java库,它允许开发者在Java应用中读写Microsoft Office格式的文件,包括Excel。 在描述中提到...

    POI导出Excel文件

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

    poi读取excel文件实例(兼容excel2007)

    在“poi读取excel文件实例”中,我们将讨论如何使用Apache POI API来读取和操作Excel 2007文件。以下是一些关键知识点: 1. **创建工作簿对象**:首先,你需要通过`WorkbookFactory`类的`create()`方法打开或创建一...

    java poi导出Excel上传实例 可直接使用

    本实例将详细讲解如何利用Apache POI库在Java项目中导出Excel文件。 首先,我们需要引入Apache POI的依赖。在Maven项目中,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.apache.poi <artifactId>poi...

    Apache poi 导出excel实例

    这篇博客文章“Apache POI 导出excel实例”将深入探讨如何使用Apache POI库来生成Excel文件,这对于在Java环境中处理大量数据并需要导出为Excel格式的应用非常有用。 首先,我们需要导入Apache POI库到我们的项目中...

    Poi_Excel.zip_JAVA poi对excel文档处理_milllcb_sortkqh

    总的来说,这个压缩包提供的内容可能是一个关于如何使用Java的Apache POI库进行Excel文档操作的教程或实例集合,涵盖了创建、读取、更新和写入Excel文件的各种技巧和最佳实践。对于需要处理Excel的Java开发者来说,...

    poi 生成 excel 文件 和 数据连接池

    在本主题中,我们将重点关注使用 POI 库生成 Excel 文件以及与数据连接池的整合。 首先,让我们深入了解如何使用 Apache POI 创建 Excel 文件。POI 提供了 HSSF(用于旧版 .xls 文件)和 XSSF(用于 .xlsx 文件)...

    jsp利用POI生成Excel并在页面中导出的示例.docx

    本示例将详细介绍如何在JSP中利用POI库生成Excel文件,并直接在浏览器中导出。 首先,确保在项目中已经引入了Apache POI的依赖库。POI提供了对Excel 2003(HSSF)和Excel 2007以上版本(XSSF)的支持。在这个示例中...

    POI导出Excel表格

    在这个“POI导出Excel表格”的实例中,我们将深入探讨如何利用Apache POI进行Excel文件的导入与导出操作。 首先,我们需要在项目中集成Apache POI库。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```...

    Java POI 导出Excel 2007 实例源代码

    - 考虑使用模板文件,通过替换占位符的方式来生成Excel,以提高效率。 以上就是使用Java POI导出Excel 2007的实例源代码所涉及的主要知识点。通过这些步骤,开发者可以轻松地在Java程序中生成符合需求的Excel文件。...

    poi jxl 生成EXCEL 报表

    总的来说,Apache POI 和 JExcelAPI 都是强大的工具,能够帮助Java开发者生成Excel报表。根据项目的具体需求和复杂性,可以选择适合的库进行使用。在实际开发中,务必确保选择的库版本与Java环境兼容,并根据项目...

    POI 生成、解析excel,demo

    这个“POI 生成、解析excel,demo”很显然是一个使用 Apache POI 库创建和解析 Excel 文档的示例。Apache POI 提供了 Java API,使得开发者能够方便地在 Java 应用程序中读取、写入以及修改 Excel 文件,无论是老版本...

    poi生成报表,简单的poi实例

    在本实例中,我们将关注使用 Apache POI 来生成 Excel 报表。这个简单的 POI 实例非常适合初学者参考,它能帮助你快速理解和应用 POI 库。 首先,让我们了解 POI 的核心组件——HSSF 和 XSSF。HSSF 是用来处理 .xls...

    POI生成doc文档和docx文档相关jar包

    在这个场景中,你提到的"POI生成doc文档和docx文档相关jar包"是指使用Apache POI库在Android平台上创建Word文档的开发资源。 Apache POI提供了Java API,使得开发者可以在不依赖Microsoft Office的情况下,读取、...

    POI 完美生成带文字水印的excle

    总之,使用Apache POI生成带文字水印的Excel文件是一项实用的技能,能够帮助Java开发者在处理Excel文档时添加额外的安全层或标识。通过学习和理解提供的代码示例,你可以深入理解如何操作Excel文件,并进一步扩展...

    POI读取excel的内容.zip

    在Java编程领域,Apache POI库是一个非常重要的工具,它允许开发者处理Microsoft Office格式的文件,包括Excel(.xlsx和.xls)文档。本教程将详细讲解如何使用Apache POI库来读取Excel文件的内容。 首先,为了在...

    poi导出excel表格

    为了解决这个问题,Apache POI提供了一种直接在内存中生成Excel文件并将其作为HTTP响应流返回给客户端的方法。这种方法无需在服务器上保存任何临时文件,降低了系统的资源消耗。 四、步骤详解 1. 添加Apache POI...

    poi 基于excel模板导出功能

    在Java开发中,POI库被广泛用于读取、写入和修改Excel文档。本篇将深入探讨如何利用Apache POI实现基于Excel模板的导出功能。 一、Apache POI基本概念 1. HSSF与XSSF:Apache POI提供了两种处理Excel的API,HSSF...

Global site tag (gtag.js) - Google Analytics