JAVA JXL -----excel文件生成、在线打开和下载
2011-07-23 16:47
756 查看
前一篇是利用JXL 进行excel文档上传 和 数据解析,这里介绍利用JXL生成excel文档、并同时文件在线打开和下载
一、范例 生成一个10行5列的excel文档
WritableWorkbook wwb = null;
try {
//首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象
wwb = Workbook.createWorkbook(new File(fileName));
} catch (IOException e) {
e.printStackTrace();
}
if(wwb!=null){
//创建一个可写入的工作表
//Workbook的createSheet方法有两个参数,第一个是工作表的名称,第二个是工作表在工作薄中的位置
WritableSheet ws = wwb.createSheet("sheet1", 0);
//下面开始添加单元格
for(int i=0;i<10;i++){
for(int j=0;j<5;j++){
//这里需要注意的是,在Excel中,第一个参数表示列,第二个表示行
Label labelC = new Label(j, i, "这是第"+(i+1)+"行,第"+(j+1)+"列");
try {
//将生成的单元格添加到工作表中
ws.addCell(labelC);
} catch (RowsExceededException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
}
}
try {
//从内存中写入文件中
wwb.write();
//关闭资源,释放内存
wwb.close();
} catch (IOException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
}
二、文件下载
简单起见,下载本地D盘已经生成好的文件,这里需要注意个地方,就是文件名乱码问题,在这里用红色字体标出
String filePath = "D:\\测试Excel.xls";
writeExcel(filePath);
File file = new File(filePath);
if(!file.exists()){
response.sendError(404,"File Not found");
return;
}
BufferedInputStream br = new BufferedInputStream(new FileInputStream(filePath));
byte[] buf = new byte[1024];
int len = 0;
response.reset(); // 非常重要
String fileName = file.getName();
byte[] b = fileName.getBytes( "GBK");
fileName = new String(b, "iso8859-1");
if(online){//在线打开
URL u = new URL("file:///" + filePath);
response.setContentType(u.openConnection().getContentType());
response.setHeader("Content-Disposition", "inline; filename=" + fileName);
}else{
response.setContentType("application/x-msdownload");
response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
}
OutputStream out = response.getOutputStream();
while ((len = br.read(buf)) > 0)
out.write(buf, 0, len);
br.close();
out.close();
一、范例 生成一个10行5列的excel文档
WritableWorkbook wwb = null;
try {
//首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象
wwb = Workbook.createWorkbook(new File(fileName));
} catch (IOException e) {
e.printStackTrace();
}
if(wwb!=null){
//创建一个可写入的工作表
//Workbook的createSheet方法有两个参数,第一个是工作表的名称,第二个是工作表在工作薄中的位置
WritableSheet ws = wwb.createSheet("sheet1", 0);
//下面开始添加单元格
for(int i=0;i<10;i++){
for(int j=0;j<5;j++){
//这里需要注意的是,在Excel中,第一个参数表示列,第二个表示行
Label labelC = new Label(j, i, "这是第"+(i+1)+"行,第"+(j+1)+"列");
try {
//将生成的单元格添加到工作表中
ws.addCell(labelC);
} catch (RowsExceededException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
}
}
try {
//从内存中写入文件中
wwb.write();
//关闭资源,释放内存
wwb.close();
} catch (IOException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
}
二、文件下载
简单起见,下载本地D盘已经生成好的文件,这里需要注意个地方,就是文件名乱码问题,在这里用红色字体标出
String filePath = "D:\\测试Excel.xls";
writeExcel(filePath);
File file = new File(filePath);
if(!file.exists()){
response.sendError(404,"File Not found");
return;
}
BufferedInputStream br = new BufferedInputStream(new FileInputStream(filePath));
byte[] buf = new byte[1024];
int len = 0;
response.reset(); // 非常重要
String fileName = file.getName();
byte[] b = fileName.getBytes( "GBK");
fileName = new String(b, "iso8859-1");
if(online){//在线打开
URL u = new URL("file:///" + filePath);
response.setContentType(u.openConnection().getContentType());
response.setHeader("Content-Disposition", "inline; filename=" + fileName);
}else{
response.setContentType("application/x-msdownload");
response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
}
OutputStream out = response.getOutputStream();
while ((len = br.read(buf)) > 0)
out.write(buf, 0, len);
br.close();
out.close();
相关文章推荐
- Java生成excel文件-本地生成excel文件和在线生成excel及下载--jxl
- java基于jxl.jar包生成Excel文件到指定目录和服务器下载两种模式的使用方法
- JXL生成的excel文件+JAVA文件下载功能
- java action jxl 生成并下载excel
- java 生成多个excel文件并打成zip包供用户下载
- 使用JAVA通过JXL(JExcel)动态生成Excel文件 转载至台湾某博客
- java action jxl 生成并下载excel
- excel打开java生成的文件中文乱码
- java组件commons-fileupload实现文件上传、下载、在线打开
- jxl生成文件,excel打开显示:office已检测此文件存在问题
- java 以utf-8生成csv文件,用excel打开乱码问题解决
- Java代码生成excel文件下载
- java生成excel并下载(jxl)
- Java通用的Excel文件生成工具类,支持生成文件和浏览器直接下载
- Java生成excel导出文件(使用poi+JXL)
- 使用jxl动态生成excel文件并提示下载
- JXL包大解析;Java程序生成excel文件和解析excel文件内容
- Java实现最简单的在线打开保存Excel文件
- Java Excel API jxl入门及jxl.jar下载(java生成excel文件)
- Java导出页面数据或数据库数据至Excel文件并下载,采用JXL技术,小demo(servlet实现)