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

jxl导出excel 文档

    博客分类:
  • java
阅读更多

刚工作就碰到让转个excel 文档,当时贴了别人的.后来有时间赶紧自己照着别人写个,只要把别人的东西弄明白就是自己的了,

 哈哈! 看代码 ,这个功能是弹出提示框的,也解决了导出后的数据类型问题,还有 标题显示,并可以吧标题颜色做改变: 贴出来大家分享!

package com.resunly;

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

import javax.servlet.http.HttpServletResponse;

import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.Border;
import jxl.format.BorderLineStyle;
import jxl.format.Colour;
import jxl.format.VerticalAlignment;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

public class ExcelMethod {
	public void toExcelTest(List stulist, HttpServletResponse response){
		//创建工作流
		OutputStream os = null;
		
		//初始化工作表
		WritableWorkbook workbook = null;
		try {
			
			//设置弹出对话框
			response.setContentType("application/DOWLOAD");
			
			//设置工作表的标题
			response.setHeader("Content-Disposition", "attachment; filename=My Test TO Excel.xls");
			os = response.getOutputStream();
			
			//创建工作表
			workbook = Workbook.createWorkbook(os);
			
			//定义工作表 sheet 标题
			WritableSheet ws = workbook.createSheet("Mapping", 0);
			ws.getSettings().setShowGridLines(true);
			ws.getSettings().setProtected(false);
			
			//控制列的宽度,如果你要不给一样的宽度,就单独写,i代表的是列的下标,从0开始 ,从左到右
			for(int i=0;i<7;i++){
				ws.setColumnView(i, 20);
			}
			
			// 創建标题列名称
			Label titleLabel = null;
			titleLabel = new Label(0, 0, "StuNo", getHeadFormat());
			ws.addCell(titleLabel);
			titleLabel = new Label(1, 0, "StuName", getHeadFormat());
			ws.addCell(titleLabel);
			titleLabel = new Label(2, 0, "StuMoniter", getHeadFormat());
			ws.addCell(titleLabel);
			titleLabel = new Label(3, 0, "StuAddr", getHeadFormat());
			ws.addCell(titleLabel);
			titleLabel = new Label(4, 0, "Stu TELL", getHeadFormat());
			ws.addCell(titleLabel);
			titleLabel = new Label(5, 0, "Stu sex", getHeadFormat());
			ws.addCell(titleLabel);
			titleLabel = new Label(6, 0, "Stu classNo", getHeadFormat());
			ws.addCell(titleLabel);
			
			//循环添加对象数据
			for (int i = 0; i < stulist.size(); i++) {
				Stuinfo stuinfo =  (Stuinfo) stulist.get(i);
				String stuNo=stuinfo.getStuNo().toString();
				String stuName=stuinfo.getStuName().toString();
				String stuAddr=stuinfo.getAddr().toString();
				String stusex=stuinfo.getStuSex().toString();
				String stuminter=stuinfo.getMoniter().toString();
				String stuClassno=stuinfo.getClassNo();
				String stutell = stuinfo.getTell();

				Label stuNoLabel = new Label(0, i + 1, stuNo);
				Label stuNameLabel = new Label(1, i + 1, stuName);
				Label stuminterLabel = new Label(2, i +1, stuminter);
				Label stuAddrLable = new Label(3, i + 1, stuAddr);
				//Label stuTellLabel = new Label(4, i + 1, stutell); 如果用这个导出后会有数值和文本的区别
				jxl.write.Number tellNumber = new jxl.write.Number(4,i+1,Double.parseDouble(stutell));
				Label stusexLabel = new Label(5, i + 1,stusex );
				//Label classNoLabel = new Label(6, i + 1,stuClassno); 一下要注意了,必须要转成double类型的数据
				jxl.write.Number classNoNumber = new jxl.write.Number(6, i + 1,Double.parseDouble(stuClassno));
				
				ws.addCell(stuNoLabel);
				ws.addCell(stuNameLabel);
				ws.addCell(stuminterLabel);
				ws.addCell(stuAddrLable);
				ws.addCell(tellNumber);
				ws.addCell(stusexLabel);
				ws.addCell(classNoNumber);
			}
			
			workbook.write();
			workbook.close();
			os.close();
		} catch (Exception e) {
			System.out.println(e.getCause());
			System.out.println(e.getMessage());
		}
	}
	
	/**
	 * 设置单元格样式
	 * @return
	 * @throws Exception
	 */
	public static WritableCellFormat getHeadFormat() throws Exception {
		//设置字体
		WritableFont wf = new WritableFont(WritableFont.ARIAL, 8, WritableFont.BOLD);
		
		//创建单元格FORMAT
		WritableCellFormat wcf = new WritableCellFormat(wf);
		wcf.setAlignment(Alignment.CENTRE);                         
		wcf.setVerticalAlignment(VerticalAlignment.CENTRE);         
		wcf.setLocked(true);
		wcf.setBorder(Border.ALL, BorderLineStyle.THIN, Colour.BLACK);
		wcf.setBackground(Colour.GREY_25_PERCENT);
		return wcf;
	}
}

 

分享到:
评论

相关推荐

    java通过jxl生成excel文档

    Java通过JXL库生成Excel文档是一项常见的任务,尤其在数据导出、报表生成等领域非常实用。JXL是一个Java API,允许我们读写Microsoft Excel文件,而无需依赖Microsoft Office。在这个过程中,我们可以创建新的工作簿...

    JXL 下载 Excel 文档

    1. **创建新Excel文档**:通过JXL,你可以创建一个新的Excel工作簿,并添加工作表,设置单元格的样式、颜色、字体等。 2. **读取Excel文档**:可以打开已存在的Excel文件,读取其中的数据,包括文本、数字、日期、...

    Struts2+JXL 下载 Excel 文档

    在"Struts2+JXL 下载 Excel 文档"的场景中,开发者通常会创建一个Action,这个Action负责生成Excel文档并提供下载。用户通过浏览器访问特定URL,Struts2框架接收到请求后,会路由到相应的Action。Action内部会利用...

    JXL导出excel的示例及文档

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

    jxl对excel添加水印(含有setWaterMarkImage方法).zip

    在Java编程环境中,处理Excel文件是一项常见的任务,特别是在数据导入导出、报表生成等领域...对于更复杂的需求,可能需要考虑使用其他库,如Apache POI,它提供了更丰富的功能来处理Excel文档,包括更精细的图像操作。

    SSH+JXL 下载 Excel 文档

    在"SSH+JXL 下载 Excel 文档"的场景中,JXL将用于生成Excel文件,这可能包括创建工作表,设置单元格格式,填充数据等。 4. **Excel文档的生成**: 使用JXL,开发者可以创建`WritableWorkbook`对象,然后添加`...

    jxl 导出 excel

    "jxl 导出 excel"的标题和描述暗示了我们将会讨论如何使用JXL库从数据库中导出数据到Excel文档的过程。这个过程涉及到Java编程、数据库操作以及JXL库的使用。 首先,我们需要了解JXL库。JXL是一个开源库,它提供了...

    jxl导出Excel基础

    在Java开发中,导出数据到Excel是一种常见的需求,特别是在数据报表、数据分析或者用户下载功能中。`jxl`库是Java中一个广泛使用的...通过理解上述步骤和使用`jxl`库的API,开发者可以轻松地创建功能丰富的Excel文档。

    利用Jxl生成excel文件

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

    java使用jxl进行Excel导入导出

    Java 使用 JXL 进行Excel导入导出是一个常见的任务,特别是在数据处理和分析场景中。JXL 是一个 Java 库,允许开发者方便地读取、写入和操作 Excel 文件(.xls 格式)。以下是对这个主题的详细阐述: 1. **JXL 概述...

    S2SH+jxl.jar实现导出Excel文档

    S2SH+jxl.jar实现导出Excel文档

    JXL英文文档、源码、中文基础使用文档

    5. **读写机制**:JXL通过解析和生成Excel特定的二进制格式(BIFF)实现文件的读写。 ### 三、JXL中文基础使用文档 对于中文用户,JXL的中文文档提供了更易理解的指导: 1. **快速入门**:简明教程,让开发者快速...

    jxl解析excel

    在IT行业中,处理数据时,Excel表格是一种广泛使用的格式,特别是在数据分析、报表生成等领域。而Java作为企业级应用开发的主要语言之一,对于读取和写入Excel文件的需求同样旺盛。"jxl"库是一个用于Java的开源库,...

    struts2导出excel java 导出excel JXL

    struts2导出excel java 导出excel: JXL_excel: 可以直接在elipse下运行的例子 可以直接导出excel文件(包含所需的jar包) CSharpJExcel: 是JXL的官方下载的 包括详细的文档 和jar包

    jxl导出excel

    这篇博客文章可能是关于如何使用JXL库创建和操作Excel文档的一个教程或技术分享。 在Java开发中,处理Excel数据是常见的需求,例如数据分析、报表生成或数据导出。JXL库提供了方便的API,让开发者可以很容易地访问...

    关于jxl操作excel说明以及jxl.jar包下载2.6

    在Java编程环境中,处理Excel文件是一项常见的任务,特别是在数据导入导出、数据分析或者报表生成时。JXL库是一个广泛使用的开源库,它允许开发者用Java来读写Microsoft Excel文件。标题"关于jxl操作excel说明以及...

    JXL 导出EXCEL

    标题 "JXL 导出 EXCEL" 涉及到的...通过学习和实践 JXL,开发者能够轻松地在 Java 应用中生成和操作 Excel 文档,满足数据导出、报表生成等多种需求。结合提供的博客文章和示例代码,你可以更好地掌握这一工具的用法。

    JXL操作EXCEL的各个类的解析

    Excel的生成方式其实很简单,主要包括几个大的类,首先最重要的几个类就是WritableWorkbook,这个类代表的就是一个Excel文档,使用过Excel文档的都应该知道Excel文档的组成,都是由一个一个的sheet组成的,那么这个...

    jxl操作Excel简单

    - `jxl excel生成`:表示JXL用于生成Excel文件的能力。 - `jxl的API`:强调了JXL库提供的API接口,是进行Excel操作的关键。 综上所述,JXL库为Java开发者提供了一个强大且易用的工具,用于处理Excel文件。通过...

    jxl包帮助文档

    总的来说,jxl包为Java开发者提供了一个强大的工具,可以方便地与Excel文件交互,无论是简单的数据导入导出还是复杂的格式调整,都能轻松应对。通过熟悉并熟练运用jxl包的API,可以极大地提高开发效率,简化Excel...

Global site tag (gtag.js) - Google Analytics