`
duanfei
  • 浏览: 736358 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

jxl导出excel文件简单示例

    博客分类:
  • J2EE
 
阅读更多
package util;

import java.io.IOException;
import java.net.URL;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import net.sf.jxls.exception.ParsePropertyException;
import net.sf.jxls.transformer.XLSTransformer;
/**
 * Excel生成类.
 */
public class ExcelUtil {
	/**
	 * 根据模板生成Excel文件.
	 * @param templateFileName 模板文件.
	 * @param list 模板中存放的数据.
	 * @param resultFileName 生成的文件.
	 */
	public void createExcel(String templateFileName, Map<String,Object> beanParams, String resultFileName){
		//创建XLSTransformer对象
		XLSTransformer transformer = new XLSTransformer();
		//获取java项目编译后根路径
		URL url = this.getClass().getClassLoader().getResource("");
		//得到模板文件路径
		String srcFilePath = url.getPath() + templateFileName;
		String destFilePath = url.getPath() + resultFileName;
		try {
			//生成Excel文件
			transformer.transformXLS(srcFilePath, beanParams, destFilePath);
		} catch (ParsePropertyException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}

 

package test;

import java.util.ArrayList;
import java.util.List;

import po.Fruit;
import util.ExcelUtil;
/**
 * 测试类.
 */
public class Test {

	public static void main(String[] args) {
		List<Fruit> list = new ArrayList<Fruit>();
		list.add(new Fruit("苹果",2.01f));
		list.add(new Fruit("桔子",2.05f));
		String templateFileName = "template/template.xls";
		String resultFileName = "result/fruit.xls";
		Map<String,Object> beanParams = new HashMap<String,Object>();
		beanParams.put("list", list);
		new ExcelUtil().createExcel(templateFileName,beanParams,resultFileName);

	}

}

 template.xls模板文件截图:

 

注意:如果你是用的office 2007生成的excel模板,要另存为97-2003版本的。

package po;
/**
 * 水果.
 */
public class Fruit {
	/**
	 * 水果名称.
	 */
	private String name;
	/**
	 * 水果价格.
	 */
	private float price;
	
	
	public Fruit() {
		super();
	}
	
	public Fruit(String name, float price) {
		super();
		this.name = name;
		this.price = price;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public float getPrice() {
		return price;
	}
	public void setPrice(float price) {
		this.price = price;
	}
	
}

 

生成fruit.xls文件截图:

 

-------注意

 如果是测试。需要:

public void export2(String filename, Map dataMap, String model) throws IOException{
		XLSTransformer transformer = new XLSTransformer();
		HSSFWorkbook workbook = null;
		InputStream in;
		try {
			String templateDir= "D:/logs/areaReport.xls";  
			in =  new FileInputStream(templateDir);
			workbook = transformer.transformXLS(in, dataMap);
			
			String targetDir="D:/logs/testDynaMergeCells.xls";
			OutputStream os = new FileOutputStream(targetDir);  
			 
			workbook.write(os);  
			  
			os.close();  

		} catch (Exception e) {
			e.printStackTrace();
		}
	}

 

 

如果是页面,需要以下方式:

 

 

package com.jshx.et.common.cache;

import java.io.IOException;
import java.util.Map;

import com.jshx.core.base.action.BaseAction;
import com.jshx.et.common.excelModule.ExportExcel;


/**
  * 
  * @param filename 导出的Excel名
  * @param dataMap List的集合
  * @param model 需要的Excel的名称
  * @return
  * @throws IOException
  */
public class BaseExcel extends BaseAction{
	
	public String exportExcel(String filename, Map dataMap, String model) throws IOException{
		ExportExcel exportExcel = new ExportExcel();
		exportExcel.export(filename, dataMap, model, getResponse());
		return null;
	}
	
}
 


 

 

/**
	 * 
	 * @param filename	导出的文件名
	 * @param dataMap	List的集合
	 * @param model	
	 * @param response
	 * @throws IOException
	 */
	public void export(String filename, Map dataMap, String model, HttpServletResponse response) throws IOException{
		XLSTransformer transformer = new XLSTransformer();
		HSSFWorkbook workbook = null;
		InputStream in;
		try {

			//此方法需要类与模板放在同一目录下 
			in = getClass().getResource(model).openStream();
			workbook = transformer.transformXLS(in, dataMap);
			outExcel(workbook, response, filename);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	protected void outExcel(HSSFWorkbook workbook, HttpServletResponse response,
		    String filename) {
		   response.setContentType("application ns.ms-excel");
		   response.setHeader("Expires", "0");
		   response.setHeader("Cache-Control",
		     "must-revalidate, post-check=0, pre-check=0");
		   response.setHeader("Pragma", "public");
		   response.setHeader("Content-disposition", "attachment;filename="+filename+".xls");

		   try {
				workbook.write(response.getOutputStream());
		   } catch (ParsePropertyException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}

 

 

list= new ArrayList<>();
Map map = new HashMap();
		map.put("list", list);
		// 2.导出数据
		try {
			exportExcel("list", map, "template.xls");
		} catch (Exception e) {
			e.printStackTrace();
		}

 

File outdir = null;
				File outfile = null;
				outdir = new File(filePath.toString().trim());		//创建文件夹
				
				if (!outdir.exists()){
					outdir.mkdirs();
				 }
				
				outfile = new File(targetDir.toString().trim());	//创建文件
				if (!outfile.exists()){
					outfile.createNewFile();
				}

 

  • 大小: 24.3 KB
  • 大小: 14.8 KB
  • jxl.zip (3.2 MB)
  • 下载次数: 187
  • 大小: 4.8 KB
分享到:
评论
1 楼 18335864773 2017-06-22  
看了楼主写的用jxl生成excel。有地方用到了流,还特别强调了office 2003和2007
版本的问题。
分享另一种生成excel的方法吧。用pageoffice插件生成excel。不需要用流,调用一句代码就行。而且不用担心版本问题,支持office的各个版本,以及wps。

相关推荐

    java利用jxl生成excel文件

    Java使用JXL库生成Excel文件是一项常见的任务,特别是在数据处理、报表生成或导出时。JXL是一个开源的Java库,允许我们读取、写入和修改Excel文件。以下将详细讲解如何使用JXL库来生成Excel文件。 首先,我们需要在...

    利用JXL导出Excel的代码示例

    以下是一个基本的代码示例,展示了如何利用JXL导出Excel的步骤: 1. 创建工作簿对象: ```java WorkbookSettings ws = new WorkbookSettings(); // 如果需要设置编码(例如中文字符),可以这样: ws.set...

    JXL导出excel的示例及文档

    在本示例中,我们将探讨如何使用JXL导出Excel以及JXL的API文档。 1. **JXL的基本用法** - **创建工作簿(Workbook)**: 使用`Workbook.createWorkbook()`方法创建一个新的Excel工作簿对象。 - **创建工作表...

    jxl导出excel工具类

    总结起来,`jxl导出excel工具类`是一个强大的工具,它能够帮助开发者快速实现数据到Excel的导出功能,减少重复代码,提高开发效率。通过合理的封装和设计,可以使得这类工具类在不同的项目中重用,降低维护成本。...

    jxl导出excel总结

    《jxl导出Excel的深度解析与应用》 在信息化高度发展的今天,Excel作为数据处理和分析的重要工具,被广泛应用于各个领域。Java作为一种强大的编程语言,如何与Excel进行交互,成为了许多开发者关注的焦点。jxl库...

    利用Jxl生成excel文件

    这篇博客“利用Jxl生成excel文件”提供了关于如何使用Jxl库创建Excel文档的指导。 首先,Jxl库允许开发者在Java程序中直接操作Excel格式的数据,而无需依赖Microsoft Office套件。它支持多种Excel功能,如单元格...

    jxl模版生成excel

    "jxl模版生成excel" 指的是使用JExcelAPI(简称jxl)这个Java库来创建基于模板的Excel文件。JExcelAPI是一个开源项目,允许程序开发者读写Microsoft Excel文件,它支持从Java数据结构直接导出到Excel格式,同时也可...

    jxl导出excel

    标题中的“jxl导出excel”指的是使用JExcelApi(简称jxl)库来生成和导出Microsoft Excel格式的文件。JExcelApi是一个开源Java库,允许开发者在Java应用程序中读取、写入和修改Excel文件。这个工具类在处理大量数据...

    java使用jxl打印excel报表文件

    在Java开发中,生成和处理Excel文件是一项常见的任务,特别是在数据导出或报表生成的场景。JXL库是一个广泛使用的Java库,它允许开发者读取、写入和修改Excel文件。本篇将深入探讨如何使用JXL库在Java中打印Excel...

    java jxl导出excel文件.txt

    根据提供的文件信息,我们可以总结并深入探讨以下几个与...以上是关于如何使用Java JXL库导出Excel文件的详细介绍,涵盖了从环境准备到具体实现步骤的全过程。希望这些知识点能够帮助您更好地理解和应用Java JXL库。

    jxl方式生成excel表格.zip

    在提供的压缩包文件"jxl方式生成excel表格.zip"中,应该包含了这个示例项目的源代码和相关的jar包。通过分析和运行这些代码,开发者可以更好地理解和学习如何在Java中利用jxl库生成Excel表格。这有助于提高在实际...

    jxl 导出 excel

    在Java编程环境中,JXL库是一个非常流行...总之,使用JXL库在Java中导出Excel文件是一项常见的任务,尤其在数据分析和报表生成场景下。通过熟悉JXL的API,你可以轻松地定制化Excel文件的格式和内容,满足各种业务需求。

    Android-Android使用jxl快速导出excel表

    总之,使用jxl库在Android上快速导出Excel表格需要理解jxl的API,处理Android特有的文件操作和线程管理,以及适当地设置单元格内容和样式。通过实践和参考示例项目,你将能够有效地实现这一功能。

    JXL导出Excel数据表

    例如,用户请求一个导出接口后,服务器生成Excel文件,然后设置响应头并输出文件内容,用户就能在浏览器中看到下载提示。 下面是一个简单的示例,展示如何使用JXL库导出数据库数据到Excel: 1. 引入JXL库: 在...

    jxl实现导出excel数据

    在Java编程环境中,导出Excel数据是一项常见的任务,特别是在数据处理、报表生成或者数据分析的应用中。JXL库是一个广泛使用的开源库,它提供了方便的方式来读取、写入和操作Excel文件。下面我们将深入探讨如何使用...

    poi jxl 生成EXCEL 报表

    在Java编程环境中,生成Excel报表是一项常见的任务,尤其在数据处理和数据分析中。Apache POI 和 JExcelAPI(JXL)是两个广泛使用的库,分别用于处理Microsoft Office的POI格式(包括Excel)和Java环境中的Excel文件...

    jxl导出Excel基础

    虽然提供的压缩包子文件名`jxl导出Excel基础.mht`并未包含具体的代码示例,但根据文件类型(MHT是单个文件网页),我们可以推测这个文件可能包含了详细的代码示例或教程,用于辅助理解上述的导出流程。 总结起来,`...

    jxl 实现excel导入导出

    接下来,我们将讨论如何使用`jxl`库进行Excel文件的导入和导出。 **Excel导入**: 导入Excel文件主要是读取其中的数据。以下是一段基本的导入代码示例: ```java import jxl.*; public class ExcelImporter { ...

    JXLExcel生成简单excel表

    "JXLExcel生成简单excel表"是一个基于JXL库的插件,它简化了使用Java创建Excel文件的过程,使得开发者无需深入理解JXL库的复杂性就能快速生成基本的Excel表格。 JXL,全称Java Excel API,是一个开源的Java库,专门...

Global site tag (gtag.js) - Google Analytics