Java对Excel文件的读写操作可由jxl.jar或poi.jar实现,这里使用jxl.jar完成对Excel文件的导出。

一、将Excel文件导出在本地

步骤:

  创建文件 -> 创建工作簿 -> 创建Sheet -> 加入数据 -> 写入文件。

示意图

示例:由指定的数组生成Excel文件,导出在D盘根目录下,文件名为‘ExportExcelToLocal.xls’。


实现程序
`package cn.exporttoexceldemo;

import jxl.Workbook;

import jxl.write.Label;

import jxl.write.WritableSheet;

import jxl.write.WritableWorkbook;

import java.io.File;

public class ExportExcelToLocal {

public static void main(String[] args) {

String title[] = {"工号","姓名","部门"};

String content[][] = {

{"001","乔峰","财务部"},

{"002","段誉","销售部"},

{"003","虚竹","采购部"},

{"004","张无忌","研发部"},

{"005","黄蓉","人力资源部"}

};

    //1.创建一个文件
File file = new File("D:\\ExportExcelToLocal.xls");
try {
//2.创建WritableWorkbook工作簿对象,并将其接入创建的文件
WritableWorkbook writableWorkbook = Workbook.createWorkbook(file); //3.创建一个Sheet,第一个参数是sheet的名称,第二个参数是索引号
//(可通过WritableFont、WritableCellFormat等方法对单元格的属性进行设置)
WritableSheet writableSheet = writableWorkbook.createSheet("sheet1", 0); //4.在sheet中加入数据
for (int i = 0; i < title.length; i++) { //标题行
writableSheet.addCell(new Label(i,0,title[i])); //new Label(列号,行号,内容)
}
for (int i = 0; i < content.length; i++) { //内容
for (int j = 0; j < content[0].length; j++){
writableSheet.addCell(new Label(j, i+1, content[i][j]));
}
} //5.对WritableWorkbook对象执行写入操作
writableWorkbook.write();
writableWorkbook.close(); //关闭writableWorkbook }catch (Exception e){
e.printStackTrace();
} }

}

`

生成的excel文件的内容

## 二、将Excel文件导出在客户端,由浏览器下载

  实现生成并由浏览器下载Excel文件的功能有两种方式:1.先将Excel文件导出在服务器磁盘上,再由客户端下载;2.直接导出至输出流,由浏览器下载为Excel文件。这里演示直接将数据内容导出至输出流,完成由浏览器下载为Excel文件的功能。

步骤:定义输出流 ->定义工作簿-> 输出流接入网络响应 -> 工作簿接入输出流 -> 创建sheet -> 加入数据 -> 写入输出流。

示意图

示例:将指定数组的数据导出至输出流,由浏览器下载为Excel文件,文件名为‘ExportExcelToClient.xls’。

实现程序

`package cn.exporttoexceldemo;

import jxl.Workbook;

import jxl.write.Label;

import jxl.write.WritableSheet;

import jxl.write.WritableWorkbook;

import javax.servlet.ServletException;

import javax.servlet.ServletOutputStream;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

import java.io.UnsupportedEncodingException;

import java.net.URLEncoder;

@WebServlet("/ExportExcelToClientServlet")

public class ExportExcelToClientServlet extends HttpServlet {

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    String title[] = {"工号","姓名","部门"};
String content[][] = {
{"001","乔峰","财务部"},
{"002","段誉","销售部"},
{"003","虚竹","采购部"},
{"004","张无忌","研发部"},
{"005","黄蓉","人力资源部"}
}; String fileName = "ExportExcelToClient.xls"; //定义文件名
//设置编码
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
try {
if (request.getHeader("User-Agent").toUpperCase().indexOf("MSIE") > 0){ //IE浏览器
fileName = URLEncoder.encode(fileName,"UTF-8");
}else {
fileName = new String(fileName.getBytes("UTF-8"),"ISO8859-1");
}
response.setHeader("Content-Disposition", "p_w_upload; filename="+fileName);
}catch (UnsupportedEncodingException e){
e.printStackTrace();
} //1.定义一个输出流对象
ServletOutputStream servletOutputStream = null; //2.定义一个WritableWorkbook工作簿对象
WritableWorkbook writableWorkbook = null; try {
//3.将输出流对象接入响应端response
servletOutputStream = response.getOutputStream(); //4.将工作簿对象接入输出流对象
writableWorkbook = Workbook.createWorkbook(servletOutputStream); //5.创建一个Sheet,第一个参数是sheet的名称,第二个参数是索引号
WritableSheet writableSheet = writableWorkbook.createSheet("sheet1",0); //6.在sheet中加入数据
for (int i = 0; i < title.length; i++) { //标题行
writableSheet.addCell(new Label(i,0,title[i]));
}
for (int i = 0; i < content.length; i++) { //内容
for (int j = 0; j < content[0].length; j++){
writableSheet.addCell(new Label(j, i+1, content[i][j]));
}
} //7.对工作簿对象执行写入操作
writableWorkbook.write();
servletOutputStream.flush();
}catch (Exception e){
e.printStackTrace();
}finally {
try {
writableWorkbook.close();
servletOutputStream.close();
}catch (Exception e1){
e1.printStackTrace();
}
} } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}

}

`

生成的excel文件的内容

End.

Java中使用jxl.jar将数据导出为excel文件的更多相关文章

  1. Qt中将QTableView中的数据导出为Excel文件

    如果你在做一个报表类的程序,可能将内容导出为Excel文件是一项必须的功能.之前使用MFC的时候我就写过一个类,用于将grid中的数据导出为Excel文件.在使用了QtSql模块后,我很容易的将这个类 ...

  2. Java利用Apache POI将数据库数据导出为excel

    将数据库中的数据导出为excel文件,供其他人查看 public class POITest { public static void main(String[] args) { POITest te ...

  3. C#将数据集DataSet中的数据导出到EXCEL文件的几种方法

    using System; using System.Collections.Generic; using System.Text; using System.Data; using System.W ...

  4. VB将MSHFlexGrid数据导出到Excel文件通用功能

    1.通用导出Excel功能. 2.将 MSHFlexGrid数据导出到Excel文件通用功能. 3.具体代码如下: '将下列代码保存到一模块文件中,调用方法:Export fgrid1,cd1 Pub ...

  5. 用node.js写一个简单爬虫,并将数据导出为 excel 文件

    引子 最近折腾node,最开始像无头苍蝇一样到处找资料,然而多数没什么卵用,都在瞎比比.在一阵瞎搞后,我来分享一下初步学习node的三个过程: 1 撸一遍NODE入门,对其有个基本的了解: 2 撸一遍 ...

  6. 数据导出至Excel文件--好库编程网http://code1.okbase.net/codefile/SerializeHelper.cs_2012122018724_118.htm

    using System; using System.IO; using System.Data; using System.Collections; using System.Data.OleDb; ...

  7. Pl/sql 如何将oracle的表数据导出成excel文件?

    oracle将表数据导出成excel文件的方法 1)在SQL窗体上,查询需要导出的数据 --查询数据条件-- ; 结果视图 2)在查询结果的空白处,右键选择Copy to Excel 3) 查看导出e ...

  8. C#中dategridview数据导出为excel文件

    先从数据库中获取数据,绑定在datagridview中,再从dategridview中导出为excel文件 1.新建窗体,把控件datagridview和按钮设置好,如图

  9. abp中文件下载,将内存数据导出到Excel并下载

    1.数据导出为Excel的Stream using System; using System.Collections.Generic; using System.IO; using Abp.Colle ...

随机推荐

  1. 双非本科Android开发,如何逆袭拿到大厂 Offer?

    从2020年3月18日投出第一份暑期实习简历至今,已经过去400多天.我也尘埃落定,即将去CVTE做Android开发. 休息了很长时间,如今已经能够很平静地回首这段历程,写下这篇文,致敬曾经走过的漫 ...

  2. java数据类型和类型得转换

    java数据类型 强类型语言 ​ Java是一种强类型得语言,严格要求变量要符合规定,所有变量都必须先定义再使用 java得数据类型分为两大类 值得注意得是String并不是一个数据类型,它是一个类 ...

  3. Numpy数组的组合与分割详解

    在介绍数组的组合和分割前,我们需要先了解数组的维(ndim)和轴(axis)概念. 如果数组的元素是数组,即数组嵌套数组,我们就称其为多维数组.几层嵌套就称几维.比如形状为(a,b)的二维数组就可以看 ...

  4. RationalRose使用

    UML 概述 什么是 UML? Unified Modeling Language (UML)又称统一建模语言或标准建 模语言,是始于 1997 年一个 OMG 标准,它是一个支持模型化 和软件系统开 ...

  5. linux虚拟机环境快速搭建redis5.x版本的主从集群总结

    文/朱季谦 我在阿里云服务器上曾参与过公司redis集群的搭建,但时间久了,都快忘记当时的搭建过程了,故而决定在虚拟机centOS 7的环境,自行搭建一套redis5.x版本的集群,该版本集群的搭建比 ...

  6. python爬虫:了解JS加密爬取网易云音乐

    python爬虫:了解JS加密爬取网易云音乐 前言 大家好,我是"持之以恒_liu",之所以起这个名字,就是希望我自己无论做什么事,只要一开始选择了,那么就要坚持到底,不管结果如何 ...

  7. STM32—驱动RFID-RC522模块

    文章目录 一.S50(M1)卡介绍 1.S50(M1)卡基础知识 2.内部信息 3.存取控制 4.数据块的存取控制 5.控制块的存取控 6.工作原理 7.M1与读卡器的通信 二.RC522工程代码详解 ...

  8. SQL Server 判断数据库中是否存在表

    使用场景 可以反复的执行相同脚本 方式1:查询sysobjects表 if EXISTS (SELECT * from sysobjects WHERE name='test_table') DROP ...

  9. VMware + LInux + Xshell 连接环境设置

    一.安装好Centos后,打开设置: 网络连接四中模式桥接模式.NAT模式.仅主机和自定义模式: 1).桥接模式:更公司的局域网连接,等于另一台连接进公司的新电脑 2).NAT模式:与虚拟机使用的计算 ...

  10. DLL-创建DLL

    动态链接库的创建 fangyukuan 2010.6.20 编写DLL时的函数与一般的函数方法基本一样.但要对库中的函数进行必要的声明,以说明哪些函数是可以导出的,哪些函数是不可以导出的. 把DLL中 ...