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(); }
相关推荐
Java使用JXL库生成Excel文件是一项常见的任务,特别是在数据处理、报表生成或导出时。JXL是一个开源的Java库,允许我们读取、写入和修改Excel文件。以下将详细讲解如何使用JXL库来生成Excel文件。 首先,我们需要在...
以下是一个基本的代码示例,展示了如何利用JXL导出Excel的步骤: 1. 创建工作簿对象: ```java WorkbookSettings ws = new WorkbookSettings(); // 如果需要设置编码(例如中文字符),可以这样: ws.set...
在本示例中,我们将探讨如何使用JXL导出Excel以及JXL的API文档。 1. **JXL的基本用法** - **创建工作簿(Workbook)**: 使用`Workbook.createWorkbook()`方法创建一个新的Excel工作簿对象。 - **创建工作表...
总结起来,`jxl导出excel工具类`是一个强大的工具,它能够帮助开发者快速实现数据到Excel的导出功能,减少重复代码,提高开发效率。通过合理的封装和设计,可以使得这类工具类在不同的项目中重用,降低维护成本。...
《jxl导出Excel的深度解析与应用》 在信息化高度发展的今天,Excel作为数据处理和分析的重要工具,被广泛应用于各个领域。Java作为一种强大的编程语言,如何与Excel进行交互,成为了许多开发者关注的焦点。jxl库...
这篇博客“利用Jxl生成excel文件”提供了关于如何使用Jxl库创建Excel文档的指导。 首先,Jxl库允许开发者在Java程序中直接操作Excel格式的数据,而无需依赖Microsoft Office套件。它支持多种Excel功能,如单元格...
"jxl模版生成excel" 指的是使用JExcelAPI(简称jxl)这个Java库来创建基于模板的Excel文件。JExcelAPI是一个开源项目,允许程序开发者读写Microsoft Excel文件,它支持从Java数据结构直接导出到Excel格式,同时也可...
标题中的“jxl导出excel”指的是使用JExcelApi(简称jxl)库来生成和导出Microsoft Excel格式的文件。JExcelApi是一个开源Java库,允许开发者在Java应用程序中读取、写入和修改Excel文件。这个工具类在处理大量数据...
在Java开发中,生成和处理Excel文件是一项常见的任务,特别是在数据导出或报表生成的场景。JXL库是一个广泛使用的Java库,它允许开发者读取、写入和修改Excel文件。本篇将深入探讨如何使用JXL库在Java中打印Excel...
根据提供的文件信息,我们可以总结并深入探讨以下几个与...以上是关于如何使用Java JXL库导出Excel文件的详细介绍,涵盖了从环境准备到具体实现步骤的全过程。希望这些知识点能够帮助您更好地理解和应用Java JXL库。
在提供的压缩包文件"jxl方式生成excel表格.zip"中,应该包含了这个示例项目的源代码和相关的jar包。通过分析和运行这些代码,开发者可以更好地理解和学习如何在Java中利用jxl库生成Excel表格。这有助于提高在实际...
在Java编程环境中,JXL库是一个非常流行...总之,使用JXL库在Java中导出Excel文件是一项常见的任务,尤其在数据分析和报表生成场景下。通过熟悉JXL的API,你可以轻松地定制化Excel文件的格式和内容,满足各种业务需求。
总之,使用jxl库在Android上快速导出Excel表格需要理解jxl的API,处理Android特有的文件操作和线程管理,以及适当地设置单元格内容和样式。通过实践和参考示例项目,你将能够有效地实现这一功能。
例如,用户请求一个导出接口后,服务器生成Excel文件,然后设置响应头并输出文件内容,用户就能在浏览器中看到下载提示。 下面是一个简单的示例,展示如何使用JXL库导出数据库数据到Excel: 1. 引入JXL库: 在...
在Java编程环境中,导出Excel数据是一项常见的任务,特别是在数据处理、报表生成或者数据分析的应用中。JXL库是一个广泛使用的开源库,它提供了方便的方式来读取、写入和操作Excel文件。下面我们将深入探讨如何使用...
在Java编程环境中,生成Excel报表是一项常见的任务,尤其在数据处理和数据分析中。Apache POI 和 JExcelAPI(JXL)是两个广泛使用的库,分别用于处理Microsoft Office的POI格式(包括Excel)和Java环境中的Excel文件...
虽然提供的压缩包子文件名`jxl导出Excel基础.mht`并未包含具体的代码示例,但根据文件类型(MHT是单个文件网页),我们可以推测这个文件可能包含了详细的代码示例或教程,用于辅助理解上述的导出流程。 总结起来,`...
接下来,我们将讨论如何使用`jxl`库进行Excel文件的导入和导出。 **Excel导入**: 导入Excel文件主要是读取其中的数据。以下是一段基本的导入代码示例: ```java import jxl.*; public class ExcelImporter { ...
"JXLExcel生成简单excel表"是一个基于JXL库的插件,它简化了使用Java创建Excel文件的过程,使得开发者无需深入理解JXL库的复杂性就能快速生成基本的Excel表格。 JXL,全称Java Excel API,是一个开源的Java库,专门...