您的位置:首页 > 编程语言 > Java开发

java基于jxl.jar包生成Excel文件到指定目录和服务器下载两种模式的使用方法

2018-03-09 22:37 2146 查看

导入jxl包

import java.io.File;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;


创建Excel表格

创建到指定目录下

//创建一个Excel文件
WritableWorkbook book = Workbook.createWorkbook(new File("d:/Test.xls"));


如上,Excel将会创建到指定的绝对目录下,文件名为Test.xls,可自行更改。

web访问服务器下载方式

OutputStream os = response.getOutputStream();//取得输出流
response.reset();//清空输出流
//下面是对中文文件名的处理
response.setCharacterEncoding("UTF-8");//设置相应内容的编码格式
//设置文件的默认文件名
response.setHeader("Content-Disposition","attachment;filename=shuju.xls");
response.setContentType("application/msexcel");//定义输出类型
//建立Excel文件
WritableWorkbook book =Workbook.createWorkbook(os);


Excel文件内容格式优化

WritableSheet sheet =book.createSheet(filename,0);//文件内分页名
WritableFont font=new WritableFont(WritableFont.ARIAL,15,WritableFont.BOLD,false,
jxl.format.UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.BLACK);//设置字体格式、样式

WritableCellFormat fontFormat=new WritableCellFormat(font);//实例化表格格式
WritableCellFormat fontFormat1=new WritableCellFormat();
fontFormat.setAlignment(Alignment.CENTRE);//设置单元格水平居中
fontFormat1.setAlignment(Alignment.CENTRE);//设置单元格水平居中

Label label_title=new Label(0,0,"内容",fontFormat);//实例化单元格内容,并应用样式对单元格进行处理
sheet.addCell(label_title);//将内容添加入单元格中。


可循环写入数据:

sheet.mergeCells(0,0,9,0);////设置第1列、第1行 到 第10列、第1行合并
String[] st = {"Bname","Pname","Psex","Ptel","Pdate","Phot","zero","Wdate","Wperson","location"};
for(int i=0;i<10;i++){//循环写入数据
Label cill_title=new Label(i,1,st[i],fontFormat1);
sheet.addCell(cill_title);
}


注意!!!:表格处理操作部分,需要使用try,catch语句进行包裹,否则会报错。

结束段注意事项:当Excel表格所有内容处理后,需要关闭所有的数据流,否则生成的Excel表将无法正常打开,会出现表格已损坏的提示语句。

以上述代码为例(代码最后):

book.write();//写入表格
book.close();//结束表格编写
os.close();//关闭数据流


如果采用服务器下载模式,需添加一句代码:

out.flush();


以上为Excel相关的数据生成,导出方式。表格样式可自行百度补充。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java jxl.jar excel