jxl导出excel

Java基于jxl与模板导出excel并弹出下载 操作Excel文件的开源工具有很多,用得比较多的就是POI与JXL,网上这方面的资料也很多,一般的导出操作需要涉及很多的单元格操作,比较繁琐。所以通过模板的方式先定好布局,那么就免去不少麻烦,我们只需要遍历数据即可。 首先,先看看不连接数据库的例子public static void test(){ ReportEnginer enginer = new ReportEnginer(); 阅读详情

首先先在自己工程中导入jxl的jar包;

疯狂google后找到一段别人的导出excel方法,先备份于下面:

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Vector;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.Colour;
import jxl.format.UnderlineStyle;
import jxl.format.VerticalAlignment;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;

public class ExportData {

    /** *//**
     * 导出数据为XLS格式
     * @param fileName        文件的名称,可以设为绝对路径,也可以设为相对路径
     * @param content        数据的内容
     */
    public static void exportExcel(String fileName, Vector<Person> content) {
        WritableWorkbook wwb;
        FileOutputStream fos;
        try {    
            fos = new FileOutputStream(fileName);
            wwb = Workbook.createWorkbook(fos);
            WritableSheet ws = wwb.createSheet("三国志武将列表", 10);        // 创建一个工作表

            //    设置单元格的文字格式
            WritableFont wf = new WritableFont(WritableFont.ARIAL,12,WritableFont.NO_BOLD,false,
                    UnderlineStyle.NO_UNDERLINE,Colour.BLUE);
            WritableCellFormat wcf = new WritableCellFormat(wf);
            wcf.setVerticalAlignment(VerticalAlignment.CENTRE);
            wcf.setAlignment(Alignment.CENTRE);
            ws.setRowView(1, 500);

            //    填充数据的内容
            Person[] p = new Person[content.size()];
            for (int i = 0; i < content.size(); i++){
                p[i] = (Person)content.get(i);
                ws.addCell(new Label(1, i + 1, p[i].getName(), wcf));
                ws.addCell(new Label(2, i + 1, p[i].getNickname(), wcf));
                ws.addCell(new Label(3, i + 1, p[i].getPower(), wcf));
                ws.addCell(new Label(4, i + 1, p[i].getWit(), wcf));
                ws.addCell(new Label(5, i + 1, p[i].getPolity(), wcf));
                ws.addCell(new Label(6, i + 1, p[i].getCharm(), wcf));
                ws.addCell(new Label(7, i + 1, p[i].getStory(), wcf));
                if(i == 0)
                    wcf = new WritableCellFormat();
            }

            wwb.write();
            wwb.close();

        } catch (IOException e){
        } catch (RowsExceededException e){
        } catch (WriteException e){}
    }

    /** *//**
     * 从Excel文件里读取数据保存到Vector里
     * @param fileName        Excel文件的名称
     * @return                Vector对象,里面包含从Excel文件里获取到的数据
     */
    public static Vector<Person> importExcel(String fileName){
        Vector<Person> v = new Vector<Person>();
        try {
            Workbook book = Workbook.getWorkbook(new File(fileName));
            Sheet sheet = book.getSheet(0);        // 获得第一个工作表对象
            int rows = sheet.getRows();
           
            for(int i = 0; i < rows; i++) {
                Cell [] cell = sheet.getRow(i);
                if(cell.length == 0)
                    continue;
               
                Person p = new Person();
                p.setName(sheet.getCell(1, i).getContents());
                p.setNickname(sheet.getCell(2, i).getContents());
                p.setPower(sheet.getCell(3, i).getContents());
                p.setWit(sheet.getCell(4, i).getContents());
                p.setPolity(sheet.getCell(5, i).getContents());
                p.setCharm(sheet.getCell(6, i).getContents());
                p.setStory(sheet.getCell(7, i).getContents());
                v.add(p);
            }

            book.close();
        }catch(Exception e) {}
        return v;
    }

    public static void main(String [] args){
        String fileName = "C:\\test.xls";
        String fileNameNew = "C:\\testNew.xls";
       
        Person p0 = new Person("姓名","字","武力","智力","政治","魅力","英雄事迹");
        Person p1 = new Person("赵云","子龙","98","84","83","87","单骑救主!!!");
        Person p2 = new Person("马超","孟起","98","62","40","88","杀得曹操割须弃袍!!!");
        Person p3 = new Person("诸葛亮","孔明","55","100","92","93","死后木偶退兵,锦囊杀魏延!!!");

        Vector<Person> v = new Vector<Person>();
        v.add(p0);
        v.add(p1);
        v.add(p2);
        v.add(p3);
       
        exportExcel(fileName, v);
        System.out.println("成功导出数据到Excel文件(" + fileName + ")了!!!");
       
//        Vector<Person> vector = importExcel(fileName);
//        System.out.println("成功从Excel文件(" + fileName + ")导入数据!!!");
//       
//        exportExcel(fileNameNew, vector);
//        System.out.println("成功将" + fileName + "里的数据手复制到" + fileNameNew + "中!!!");
    }
}

上面的方法很好,导出我试过了,很好用,但它只实现了自动生成了excel文件;但是我们项目要求的是:弹出保存/打开excel的对话框,然后直接打开或输入路径再保存;

import java.io.IOException;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Vector;

import javax.servlet.http.HttpServletResponse;

import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.Colour;
import jxl.format.UnderlineStyle;
import jxl.format.VerticalAlignment;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;

public class ExportExcel {

public static void exportExcel( Object objIn,Object objOut) {
         try {
         //取得response HttpServletResponse
         HashMap hmOut = (HashMap)objOut;
         HashMap hmIn = (HashMap)objIn;
         HttpServletResponse response=(HttpServletResponse)hmIn.get("response");
         //设置table列名
         String excelName =(String)hmIn.get("excelName");
         String[] excelNameArray = excelName.split(",");
        
        
         //取得key
         String[] excelKeyArray = (String[])hmOut.get("excelKey");
        
        
OutputStream os = response.getOutputStream();// 取得输出流  
             response.reset();// 清空输出流  

             response.setHeader("Content-disposition", "attachment; filename="+new String("Book1".getBytes("GB2312"),"8859_1")+".xls");// 设定输出文件头  
             response.setContentType("application/msexcel");// 定义输出类型
            
             WritableWorkbook wwb = Workbook.createWorkbook(os); // 建立excel文件  
        
             WritableSheet ws = wwb.createSheet("Sheet1", 10);        // 创建一个工作表

             //    设置单元格的文字格式
             WritableFont wf = new WritableFont(WritableFont.ARIAL,10,WritableFont.NO_BOLD,false,
                     UnderlineStyle.NO_UNDERLINE,Colour.BLUE);
             WritableCellFormat wcf = new WritableCellFormat(wf);
             wcf.setVerticalAlignment(VerticalAlignment.CENTRE);
             wcf.setAlignment(Alignment.CENTRE);
             ws.setRowView(0, 500);

             //    填充数据的内容
             int len=((String[])hmOut.get(excelKeyArray[0])).length;
             //设置列头名
         for (int j=0;j<excelKeyArray.length;j++){
            ws.addCell(new Label(j, 0, excelNameArray[j], wcf));
         }
         //设置内容
         wcf = new WritableCellFormat();
             for (int i = 0; i <len; i++){
             for (int j=0;j<excelKeyArray.length;j++){
                ws.addCell(new Label(j, i+1, ((String[])hmOut.get(excelKeyArray[j]))[i], wcf));
             }
             }

             wwb.write();
             wwb.close();

         } catch (IOException e){
         } catch (RowsExceededException e){
         } catch (WriteException e){}
     }

}

注:现在弹出对话框,就是说要用io流的方式,io流就要从response中取;这里要导入tomcat里的一个jar:servlet.jar

jxl动态导出Excel 一、概述 在工作过程中,都会遇到这样一个需求,动态选择想要导出的字段,这里写成通用的导出Excel的工具。 二、项目实现 1、构建pom.xml 我的工程是利用Maven来构建的,这里仅给出最核心的包 &lt;!--jxi导出--&gt; &lt;dependency&gt; &lt;groupId&gt;net.sourceforge.jexcelapi&lt;/gro... 阅读详情

相关推荐

jxl-2.6.10.jar.zip

jxl导出excel

jxl操作EXCEL

package cztest;     import java.io.FileOutputStream;   import java.io.OutputStream;   import java.text.SimpleDateFormat;   import java.util.

dy_Smile的专栏 951

jxls源码+API+示例代码

最新jxls源码+API+示例代码,支持最新版POI3.6,有了它你就可以对excel文件操作自如了!

JXL复制源码

import java.io.File;import java.io.IOException;import jxl.BooleanCell;import jxl.Cell;import jxl.CellType;import

分布式应用与服务器架构专栏 1999

jxl源码

jxl.jar源码,压缩包是个完整的工程

jxl源码及jar包

通过java操作excel表格的工具类库 支持Excel 95-2000的所有版本 生成Excel 2000标准格式 支持字体、数字、日期操作 能够修饰单元格属性 支持图像和图表

JXL的jar_源码

这段时间需要做数据导出功能,所以就玩了下jxl,蛮好用的

xiongxu的专栏 536

jxl.jar源码 jar包

jxl.jar是通过java操作excel表格的工具 类库支持Excel 95-2000的所有版本 生成Excel 2000标准格式 支持字体、数字、日期操作 能够修饰单元格属性 支持图像和图表 应该说以上功能已经能够大致满足我们的需要。最关键的是这套API是纯Java的,并不依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件。

jxl导出Excel文件案例

导入jar包: <dependency> <groupId>net.sourceforge.jexcelapi</groupId> <artifactId>jxl</artifactId> <version>2.6.10</version> </dependency&g...

itboy 843

jxl-2.6.12包 源码 及 javadoc

jxl二进制包 源码包 及 javadoc

FANUC机器人电弧跟踪功能深度解析:从电流采样原理到ROBOGUIDE仿真避坑指南

本文深度解析FANUC机器人电弧跟踪技术,从电流采样原理到ROBOGUIDE仿真避坑指南,详细介绍了电流波形分析、实时补偿机制及现场调试技巧。针对工业焊接中的常见问题,提供从底层原理到高阶应用的解决方案,帮助工程师优化自动化焊接质量。

weixin_31785177的博客 547

java使用jxl实现excel导入导出

开发过程中经常需要用到数据的导入导出功能,之前用的是POI,这次使用JXL,JXL相对于POI来说要轻量简洁许多,在数据量不大的情况下还是非常实用的。这里做一下使用JXL的学习记录。首先需要导入相应的jar包,pom.xml中添加如下内容即可             &lt;dependency&gt;                     &lt;groupId&gt;net.source...

从放弃到开始 1万+

嵌入式音频架构 - AudioWeaver 整体概念

AudioWeaver 是DSP Concept公司推出的基于嵌入式平台的音频框架。由AWE Core embedded processing engine 和 Audio Weaver Designer IDE 组成。 Audio Weaver Designer 有三个版本,ST Edition, Standard Edtion 和 Pro Edtion。 Audio Weaver Designer界面: Audio Weaver 的整体使用架构: AWD算法流文件,AWS配置脚本文件,AWB嵌入式b

甲客实验室 6869

jxl实现导出excel

jxl在web项目中如何实现导出excel处理1.固定模板导出的处理,具体excel模板如下struts2中的对应action 方法代码。/** * 生成个人信息excel的action * @return */ public String printInformgr(){ //以下变量名按照具体模板中对应的(列数行数名命名,具体插入注意行数列数都从0开始的) inform=(Inform)this.publicDao.getObjectByHsql("from Inform

xiashan17的专栏 1967

ConnectionResetError 10054 根因分析与全链路防御指南

ConnectionResetError(错误码10054)是TCP协议中服务端主动发送RST包导致的强制断连,本质并非网络连接失败,而是服务端基于空闲超时、连接满载、TLS协商失败等策略做出的确定性终止决策。理解其底层原理有助于跳出‘重试’误区,转向连接生命周期管理。该错误高频出现在HTTP长连接、WebSocket、第三方API对接等场景,尤其在Nginx反向代理、负载均衡器(如AWS ALB)、WAF设备及内核conntrack机制下极易触发。本文结合Wireshark抓包分析、客户端心跳保鲜、协议指

weixin_30225755的博客 637

HCIA-Storage 存储工程师学习笔记——1. 存储技术趋势

文章目录1. 存储技术趋势1.1 数据、信息与数据存储1.2 存储技术的发展①存储架构的发展②存储介质的发展③ 接口协议的发展1.3 存储产品的发展趋势 华为HCIA-Storage认证地址:https://e.huawei.com/cn/talent/#/cert/roadmap 1. 存储技术趋势 1.1 数据、信息与数据存储 什么是数据? ​ 数据是对所有事物的数字表示。 数据的种类? 结构化数据 半结构化数据 非结构化数据 数据的处理周期 ​ 数据处理是人或机器对数据进行的重组或重新排序,

超级大洋葱的博客 2842

使用JXL实现excel导出

1、需要添加的依赖: <dependency> <groupId>jexcelapi</groupId> <artifactId>jxl</artifactId> <version>2.4.2</version> </dependency> 2、JXLUt...

qq_42794038的博客 311

Windows安装WSL子系统及docker,以及WSL和docker配置、使用及问题解决

在Windows操作系统中,Ubuntu子系统(也称为Windows Subsystem for Linux, WSL)为开发者提供了一个在Windows环境下运行Linux环境的平台。然而,有时用户在按照Ubuntu子系统或者使用WSL时,可能会遇到各种问题,下面总结一下解决方式。想要在Windows上安装Docker(实际上是基于Hyper-V或者WSL2这两项虚拟化技术),需要开启虚拟化功能,所以不管是对于系统还是硬件都有一定的要求。

sym的博客 9779

利用jxl进行对excel导出

1.poi和jxl都可以进行对excel的导出,但两者的差别也是很明显的,读者可以细查 以下介绍jxl到处excel的方式 1.1无表头的方式 需要 OutputStream,List集合注意行和列都是从0开始 public static void createExcel(OutputStream os,             List&lt;Object&gt; object) thro...

杨宇 302

生成对抗网络——CGAN(代码+理解)

CGAN(Conditional Generative Adversarial Network)模型是一种 深度学习模型,属于生成对抗网络(GAN)的一种 变体。它的 基本思想是通过 训练生成器和判别器两个网络,使生成器能够生成与给定条件 相匹配的 合成数据,而判别器则 负责区分真实数据和 生成数据。相比于GAN它引入了条件信息(y),使得生成器可以生成与给定条件相匹配的合成数据,从而提高了生成数据的可控性和针对性。

CXDNW的博客 1万+

数字孪生通信层开发:C#实现OPC UA到Unity3D的实时数据映射(2026年工业级实战指南)

(西门子数字孪生总监):“在产线上,50ms的延迟意味着1%的设备误操作率。2026年,通信层不是‘工具’,是数字孪生的‘生命线’。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 181

jxl导出excel的具体例子

作为一个刚工作不久的开发者来说,积累自己的代码很有必要。下面是总结jxl的导出excel文件的一个实例: 1、首先需要导入jxl.jar到自己的项目中 try {             //期刊             List plist = Publish.dao.find("select * from publish");             //业务员          

娜年夏天 550

Diffusion Models扩散模型与深度学习(数学原理和代码解读)

​ 此前GANs霸占各大顶会很多年,DDPM的出现让人耳目一新!经过这两年的发展,Diffusion Models能在图像生成、超分辨率重建、点云生成、语音生成等领域达到SOTA。这篇文章旨在帮助没有了解过的读者入门,《Diffusion Models与深度学习专栏》已经写了将近三十篇文章,既有原理公式和必备基础知识的讲解,也有代码详细实战解读,还有前沿热门应用,欢迎读者订阅。

沉迷单车的追风少年 4万+

使用jxl导出Excel文件,并且设置Excel样式

最近一段时间一直在做Excel导出,主要是年关将近,有各类统计数据需要。 第一步:创建Excel文件

hamote的博客 3000

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

上一篇: Jxl使用总结
下一篇: Sql 分组后取得最新
7star_java
博客等级 码龄15年 80粉丝 127原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值