Java中使用jxl.jar将数据导出为excel文件
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文件的更多相关文章
- Qt中将QTableView中的数据导出为Excel文件
如果你在做一个报表类的程序,可能将内容导出为Excel文件是一项必须的功能.之前使用MFC的时候我就写过一个类,用于将grid中的数据导出为Excel文件.在使用了QtSql模块后,我很容易的将这个类 ...
- Java利用Apache POI将数据库数据导出为excel
将数据库中的数据导出为excel文件,供其他人查看 public class POITest { public static void main(String[] args) { POITest te ...
- C#将数据集DataSet中的数据导出到EXCEL文件的几种方法
using System; using System.Collections.Generic; using System.Text; using System.Data; using System.W ...
- VB将MSHFlexGrid数据导出到Excel文件通用功能
1.通用导出Excel功能. 2.将 MSHFlexGrid数据导出到Excel文件通用功能. 3.具体代码如下: '将下列代码保存到一模块文件中,调用方法:Export fgrid1,cd1 Pub ...
- 用node.js写一个简单爬虫,并将数据导出为 excel 文件
引子 最近折腾node,最开始像无头苍蝇一样到处找资料,然而多数没什么卵用,都在瞎比比.在一阵瞎搞后,我来分享一下初步学习node的三个过程: 1 撸一遍NODE入门,对其有个基本的了解: 2 撸一遍 ...
- 数据导出至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; ...
- Pl/sql 如何将oracle的表数据导出成excel文件?
oracle将表数据导出成excel文件的方法 1)在SQL窗体上,查询需要导出的数据 --查询数据条件-- ; 结果视图 2)在查询结果的空白处,右键选择Copy to Excel 3) 查看导出e ...
- C#中dategridview数据导出为excel文件
先从数据库中获取数据,绑定在datagridview中,再从dategridview中导出为excel文件 1.新建窗体,把控件datagridview和按钮设置好,如图
- abp中文件下载,将内存数据导出到Excel并下载
1.数据导出为Excel的Stream using System; using System.Collections.Generic; using System.IO; using Abp.Colle ...
随机推荐
- 2020年最新阿里、字节、腾讯、京东等一线大厂高频面试(Android岗)真题合集,面试轻松无压力
本文涵盖了阿里巴巴.腾讯.字节跳动.京东.华为等大厂的Android面试真题,不管你是要面试大厂还是普通的互联网公司,这些面试题对你肯定是有帮助的,毕竟大厂一定是行发展的标杆,很多公司的面试官同样会研 ...
- Java自定义注解使用和详解
前言 我们在做开发springboot 项目时候会遇到各种各样注解,使用各种各样注解,极大的简便了我们开发流程,方式,从JDK5开始支持 注解是Java语言的一种强大的功能 可以理解为代码上的特殊标记 ...
- 在Ant脚本中使用时间戳
时间戳在项目自动构建中广泛使用,例如在jar文件的manifest文件中,以及最后zip包的文件名里等,时间戳对应的Ant命令是,这个标签既可以用在一个内部,也可以放在外部用作"全局&quo ...
- Color Theme of Emacs
Choose color theme interactively: M-x customize-themes, or M-x color-theme-select (use key "q&q ...
- Python实现AI图像识别-身份证识别
图像识别说白了就是把一张照片上面的文字进行提取,提供工作效率 需求分析 身份证识别主要是把一张身份证照片上面的文字信息进行提取,不用再使用人工去手动抄写了,下面给大家说的这个身份识别主要是使用pyth ...
- 【Java】@Scheduled常用的注解的使用
@Scheduled注解的使用 cron cron这个参数必须要接受一个cron表达式 cron表达式是个啥呢,Cron表达式是一个具有时间含义的字符串,字符串以5个空格隔开,分为6个域,格式为 X ...
- oracle给system用户增加sysdba和sysoper 角色
第一步:先用sys用户登录到数据库 第二步:打开一个sql窗口,输入grant sysoper to system; 点击执行 第三步:等待执行完成之后,再执行grant sysdba to sys ...
- 【Azure 应用服务】App Service .NET Core项目在Program.cs中自定义添加的logger.LogInformation,部署到App Service上后日志不显示Log Stream中的问题
问题描述 在.Net Core 5.0 项目中,添加 Microsoft.Extensions.Logging.AzureAppServices 和 Microsoft.Extensions.Logg ...
- asp.net core 常见知识点
- 十七:使用JDBC处理MySQL大数据
一.基本概念 大数据也称之为LOB(Large Objects),LOB又分为:clob和blob,clob用于存储大文本,blob用于存储二进制数据,例如图像.声音.二进制文等. 在实际开发中,有时 ...