`
荷戟者
  • 浏览: 279680 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

自己写的Java导出Excel组件

阅读更多

自己写的,记录下来,方便以后使用。

package org.wsr.utils;

import java.io.IOException;
import java.io.OutputStream;
import java.util.Iterator;
import java.util.List;

import jxl.Workbook;
import jxl.format.Colour;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;

/**
 * 导出excel工具 110829
 * 
 * @author wangsr
 * 
 */
public class JXLUtils {
	
	/**
	 * 导出excel
	 * @param os 输出流
	 * @param data 导出数据,格式:list(0)为标题的名字,list(1..n)vo/po的属性
	 * 例如:
	 * list(0){"姓名","年龄","性别"}
	 * list(1..n){"张三","10","男"},{"李四","10","女"}
	 * @param sheetName sheet1的名字(暂时只有一个sheet)
	 * @throws Exception
	 */
	public static void exportExcel(OutputStream os, List<String[]> data,
			String sheetName) throws Exception {
		if (data == null || data.size() == 0) {
			throw new Exception("导出的数据不能为空!!");
		} else {
			// 创建工作簿
			try {
				WritableWorkbook wb = Workbook.createWorkbook(os);
				// 创建工作表
				WritableSheet sheet = wb.createSheet(sheetName, 0);
				//设置默认宽度
				sheet.getSettings().setDefaultColumnWidth(15);
				// 字体格式
				WritableFont wf = new WritableFont(WritableFont.ARIAL, 10,
						WritableFont.BOLD);
				WritableCellFormat wcf = new WritableCellFormat(wf);
				// 设置背景色
				wcf.setBackground(Colour.LIGHT_GREEN);
				// 对对齐方式
				wcf.setAlignment(jxl.format.Alignment.CENTRE);

				int count = 0;
				int[] len = new int[data.get(0).length];
				Iterator<String[]> iter = data.iterator();
				while (iter.hasNext()) {
					String[] temp = iter.next();
					// 单元格
					Label label = null;
					// 标题行,第一列为序号
					if (count == 0) {
						//标题行有特殊的格式(第一行)
						label = new Label(0, 0, "序号", wcf);
						sheet.addCell(label);
						for (int i = 0; i < temp.length; i++) {
							label = new Label(i+1, 0, temp[i], wcf);
							//设置列宽
							int tempLen = temp[i].getBytes().length;
							if (tempLen > len[i] && tempLen > 15) {
								//默认列宽为15,如果有大于15的列,则记下了,
								//并将该列设置为改宽度+4(效果好看点)【因为需求要求列必须容纳所有内容,而jxl不能自动适应列宽,所有手动设置】
								sheet.setColumnView(i+1, tempLen + 4);
								//每次都要记录下最大的列宽,方便添加新的一行数据时使用该值
								len[i] = tempLen;
							}
							sheet.addCell(label);
						}
						count++;
					} else {
						//第一列为序号
						jxl.write.Number labelNum = new jxl.write.Number(0, count, count);
						sheet.addCell(labelNum);
						// 内容列
						//列宽
						int tempLen = 0;
						for (int i = 0; i < temp.length; i++) {
							// 是数字的转化一下
							if (temp[i] != null && temp[i].trim().matches("[+-]?((0|([1-9]+[0-9]*))(\\.[0-9]+)?)")) {
								labelNum = new jxl.write.Number(i+1, count, Double.valueOf(temp[i]));
								sheet.addCell(labelNum);
							} else {
								label = new Label(i+1, count, temp[i]);
								sheet.addCell(label);
							}							
							// 设置列宽
							if (temp[i] != null){
								tempLen = temp[i].getBytes().length;
							}
							if (tempLen > len[i] && tempLen > 15) {
								sheet.setColumnView(i+1, tempLen + 1);
								len[i] = tempLen;
							}
						}
						count++;
					}
				}

				// 写出
				wb.write();
				wb.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (WriteException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}

  

3
2
分享到:
评论

相关推荐

    java导出Excel表格

    在压缩包中的"java导出Excel"文件可能是项目的源代码,包含了实现上述功能的具体Java类和方法。分析这些源码可以帮助我们更深入地理解如何在实际项目中应用这些知识点。 总结来说,这个项目展示了如何在Java环境中...

    java 读写Excel组件

    在Java编程中,处理Excel文件是一项常见的任务,无论是数据分析、数据导入导出还是报表生成,都可能需要用到。本文将深入探讨Java中用于读写Excel的组件,并提供相关的实践指导。 一、Apache POI库 Apache POI是...

    仿GoogleC#导出Excel,不用ms excel组件

    标题和描述中提到的"仿GoogleC#导出Excel,不用ms excel组件"是指在C#编程环境下,创建一个功能,能够模拟Google的Excel导出功能,但不依赖Microsoft Excel的COM组件。这种方式通常用于避免在服务器环境中安装Office...

    Java导出excel表格

    【Java导出Excel表格】是Java编程中常见的一项任务,主要应用于数据的导出与分享,比如从数据库中导出数据到Excel文件供用户下载或分析。以下将详细讲解如何使用Java实现这一功能。 首先,Java导出Excel表格通常会...

    java导出Excel文件.pdf

    文档标题为“java导出Excel文件.pdf”,描述了从导入依赖、配置文件、前端实现到后端处理的完整流程。涉及到的技术标签包括POI、Vue、Spring Boot以及jqGrid。我们接下来将按照标题和描述的要求,详细解读各个部分的...

    java导出成Excel

    ### Java导出成Excel知识点详解 #### 一、概述 在日常工作中,经常需要将Java程序中的数据导出为Excel格式以便于进一步处理或分享。本文档将详细介绍一种使用Java进行Excel导出的方法,并通过一个具体的示例代码来...

    java_poi实现excel导入导出

    Java POI 实现 Excel 导入导出 Java POI 是一个流行的 Java 库,用于处理 Microsoft Office 文件格式,包括 Excel 文件。在本文中,我们将详细介绍如何使用 Java POI 实现 Excel 导入导出功能。 1. 什么是 Java ...

    使用aspose导出Excel(根据模板导出excel).zip

    在.NET环境中,Aspose.Excel组件是实现这一目标的关键。你需要先在项目中引用Aspose.Excel的DLL文件,或者通过NuGet包管理器安装Aspose.Excel包。 在使用Aspose导出Excel时,模板通常是一个预先设计好的Excel文件,...

    Java Excel读写组件jxl使用

    Java Excel读写组件jxl使用 例如导出ofice文件

    java导出Excel的jar包

    Java导出Excel是一种常见的数据处理任务,特别是在大数据分析、报表生成和数据交换中。为了实现这一功能,开发者通常会依赖第三方库,而jar包就是Java应用程序的可执行组件。在这个场景中,我们讨论的是一个专注于...

    excel导出公共组件

    在IT行业中,Excel导出公共组件是一个非常实用的功能,它允许开发者通过编程方式将查询到的数据高效地导出为Excel格式的文件。这样的组件通常被广泛应用于数据分析、报表生成、数据备份等领域,使得用户可以方便地对...

    java导出excel文档通用工具类

    总之,"java导出excel文档通用工具类"是Java开发中的一个实用组件,它封装了Excel文件生成的复杂性,使得开发者可以专注于数据处理和业务逻辑,而不是底层的文件操作。通过学习和理解这个工具类的工作原理,我们可以...

    excel导入导出组件(java)

    这是我设计的excel导入导出组件,使用java 编写,通过xml文件的配置,来设置excel到java bean的映射。关键(配置)文件:ExcelModeMappingl.xml。 之前一直为excel的导入导出烦恼,每写一次都感觉是“重复造轮子”,...

    Java 报表导出组件,支持Excel PDF 图片等多种格式

    本文将详细讨论“Java报表导出组件”,重点涵盖它对Excel、PDF和图片格式的支持。 首先,让我们了解Java报表导出的基本概念。报表导出是指在Java应用程序中,将处理后的数据以特定格式(如Excel、PDF或图片)保存或...

    java导出word、excel、pdf、txt文件,同时兼容office2003和office2007

    2. **导出Excel文档**: 使用XSSFWorkbook类处理.xlsx文件,而HSSFWorkbook处理.xls文件。创建工作簿、工作表、行和单元格,然后设置值和格式。例如,创建一个简单的Excel表格: ```java XSSFWorkbook workbook ...

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

    对于Excel操作,Java POI提供了HSSF(对应.xls文件)和XSSF(对应.xlsx文件)两个组件,分别用于处理不同版本的Excel文件。 ### 二、显示货币格式 在使用Java POI生成Excel时,为了使数据更易读和专业,我们经常...

    POI实现Excel导入导出并附带加载进度条

    总之,这个项目是一个完整的Java解决方案,用于处理Excel文件的导入导出,同时具备用户友好的进度条显示。它利用了Apache POI的强大功能,结合maven的依赖管理,以及可能的GUI组件,提供了高效且直观的数据操作体验...

    java导出excel需要的jar包

    Java导出Excel是Java开发中常见的一项任务,主要用于数据的批量处理和报表生成。在Java中,Apache POI库是一个非常流行的工具,它允许开发者创建、修改和读取Microsoft Office格式的文件,包括Excel(.xlsx)文件。...

    java 利用poi导出EXCEL

    Java中的Apache POI库是处理Microsoft Office格式文件...通过以上步骤,你应该能够使用Apache POI在Java中成功导出Excel文件。如果你遇到任何问题,可以参考提供的代码示例或者查阅POI的官方文档,以获取更详细的帮助。

    easyui导出excel工具

    总结,EasyUI的datagrid导出Excel工具类为开发者提供了一种便捷的方式,通过前后端配合,将网页中的数据快速转换成Excel文件,满足了用户对数据管理的需求。在实际应用中,需要注意数据安全和性能优化,确保功能的...

Global site tag (gtag.js) - Google Analytics