private void doExportStatistics(ActionRequest actionRequest,ActionResponse actionResponse) throws IOException, SystemException, RowsExceededException, WriteException,
PortalException{
OutputStream outputStream=new FileOutputStream("路径"+"文件名"+".xls");
WorkbookSettings setting = new WorkbookSettings();
java.util.Locale locale = new java.util.Locale("zh","CN");
setting.setLocale(locale);
setting.setEncoding("ISO-8859-1");
WritableWorkbook wbook = Workbook.createWorkbook(outputStream);//创建一个可写入的工作薄(Workbook)对象
WritableSheet wsheet = wbook.createSheet(LanguageUtil.get(actionRequest, "Index.Scorel"), 0);//创建Excel工作表 并命名,第一个工作表
/*设置工作表中的默认列宽为12 可以看一下excel中具体的大小,
* 该值指的是在列最后出现双向箭头时,单击调节列宽时显示的前一个数值
* 如:宽度:9.00(77像素)中的9.00-->>9(因为是int型的只能设置为整数了哦!!)
* */
wsheet.getSettings().setDefaultColumnWidth(12);
/*
* 对工作表中的第一列为进行冻结窗口,实行浮动效果
* */
// wsheet.getSettings().setHorizontalFreeze(1);
/*
* 对工作表中的第一行为进行冻结窗口,实行浮动效果
* */
wsheet.getSettings().setVerticalFreeze(1);
// wsheet.getSettings().setDefaultRowHeight(60);
/*
* 设置指定行的行高:从0开始
* 关于行高:通列宽一样,但值得注意的是:在显示高度时 前一个数值*20
* 如:高度30.00(40像素)中 要用30*20=600
*
* */
wsheet.setRowView(0, 600);
/*
* 设置字体样式 (字体,大小,加粗等……)值的注意的是jxl中不能自定义颜色!
* 要想自定义颜色是比较麻烦的在这就不多说了!其实jxl内置的颜色也够基本的使用了,呵呵!
* */
WritableFont wfont = new WritableFont(WritableFont.ARIAL, 9,WritableFont.NO_BOLD, false, jxl.format.UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.WHITE);
WritableCellFormat titleFormat = new WritableCellFormat(wfont); //添加带有字体样式的formatting对象
titleFormat.setBackground(jxl.format.Colour.AQUA);//设置单元格的背景颜色
titleFormat.setWrap(true); //是否自动换行
titleFormat.setAlignment(jxl.format.Alignment.CENTRE);//上下的对齐方式
titleFormat.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);//设置水平的对齐方式 当然还有其他许多常用的属性,这里就不在累述了
jxl.write.NumberFormat nf=new jxl.write.NumberFormat("#0.00#");//格式化数值!参数可见jxl api
WritableCellFormat numberFormat=new WritableCellFormat(nf);//添加带有格式化的Number对象
/*
* 对于数据的填入就可以根据自己的具体需要进行具体的填入了!!
* */
//下面是借用网络上的内容对其他类型的对象进行的简单说明
//ws 为WritableSheet的对象
/* //2.
Number labelN = new Number(0,1,3.1415926);
ws.addCell(labelN);
//添加带有formatting的Number对象
Numberformat nf = new Numberformat("#.##");
WritableCellformat wcfN = new WritableCellformat(nf);
Number labelNF = new jxl.write.Number(1,1,3.1415926,wcfN); //在b2单元格加入数据且是带有带有格式化的Number对象
ws.addCell(labelNF);
//3.添加Boolean对象
Boolean labelB = new jxl.write.Boolean(0,2,false);
ws.addCell(labelB);
//4.添加DateTime对象
jxl.write.DateTime labelDT = new jxl.write.DateTime(0,3,new java.util.Date());
ws.addCell(labelDT);
//添加带有formatting的Dateformat对象
Dateformat df = new Dateformat("dd MM yyyy hh:mm:ss");
WritableCellformat wcfDF = new WritableCellformat(df);
DateTime labelDTF = new DateTime(1,3,new java.util.Date(),wcfDF);
ws.addCell(labelDTF);
//添加图片对象,jxl只支持png格式图片
File image = new File("f:\\2.png");
WritableImage wimage = new WritableImage(0,1,2,2,image);
ws.addImage(wimage);*/
//************************************************************************
//写入工作表
wbook.write();
wbook.close();
outputStream.close();
//***********************下面是对创建的excel的导出部分************************
//其实就是把刚才生成的excel下载下来,这里就不在累述 了
File file=new File(basePath+number+".xls");
HttpServletResponse response=PortalUtil.getHttpServletResponse(actionResponse);
response.setContentType("application/x-msdownload");
response.setHeader("Content-Disposition","attachment;filename="+file.getName());
response.setHeader("Content-Disposition","attachment;filename="+new String(file.getName().getBytes("gbk"),"iso-8859-1"));
FileInputStream fis=new FileInputStream(file);
BufferedInputStream buff=new BufferedInputStream(fis);
byte [] b=new byte[1024];
long k=0;
OutputStream myout=response.getOutputStream();
while(k<file.length()){
int j=buff.read(b,0,1024);
k+=j;
myout.write(b,0,j);
}
myout.flush();
fis.close();
myout.close();
file.delete();
}
PortalException{
OutputStream outputStream=new FileOutputStream("路径"+"文件名"+".xls");
WorkbookSettings setting = new WorkbookSettings();
java.util.Locale locale = new java.util.Locale("zh","CN");
setting.setLocale(locale);
setting.setEncoding("ISO-8859-1");
WritableWorkbook wbook = Workbook.createWorkbook(outputStream);//创建一个可写入的工作薄(Workbook)对象
WritableSheet wsheet = wbook.createSheet(LanguageUtil.get(actionRequest, "Index.Scorel"), 0);//创建Excel工作表 并命名,第一个工作表
/*设置工作表中的默认列宽为12 可以看一下excel中具体的大小,
* 该值指的是在列最后出现双向箭头时,单击调节列宽时显示的前一个数值
* 如:宽度:9.00(77像素)中的9.00-->>9(因为是int型的只能设置为整数了哦!!)
* */
wsheet.getSettings().setDefaultColumnWidth(12);
/*
* 对工作表中的第一列为进行冻结窗口,实行浮动效果
* */
// wsheet.getSettings().setHorizontalFreeze(1);
/*
* 对工作表中的第一行为进行冻结窗口,实行浮动效果
* */
wsheet.getSettings().setVerticalFreeze(1);
// wsheet.getSettings().setDefaultRowHeight(60);
/*
* 设置指定行的行高:从0开始
* 关于行高:通列宽一样,但值得注意的是:在显示高度时 前一个数值*20
* 如:高度30.00(40像素)中 要用30*20=600
*
* */
wsheet.setRowView(0, 600);
/*
* 设置字体样式 (字体,大小,加粗等……)值的注意的是jxl中不能自定义颜色!
* 要想自定义颜色是比较麻烦的在这就不多说了!其实jxl内置的颜色也够基本的使用了,呵呵!
* */
WritableFont wfont = new WritableFont(WritableFont.ARIAL, 9,WritableFont.NO_BOLD, false, jxl.format.UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.WHITE);
WritableCellFormat titleFormat = new WritableCellFormat(wfont); //添加带有字体样式的formatting对象
titleFormat.setBackground(jxl.format.Colour.AQUA);//设置单元格的背景颜色
titleFormat.setWrap(true); //是否自动换行
titleFormat.setAlignment(jxl.format.Alignment.CENTRE);//上下的对齐方式
titleFormat.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);//设置水平的对齐方式 当然还有其他许多常用的属性,这里就不在累述了
jxl.write.NumberFormat nf=new jxl.write.NumberFormat("#0.00#");//格式化数值!参数可见jxl api
WritableCellFormat numberFormat=new WritableCellFormat(nf);//添加带有格式化的Number对象
/*
* 对于数据的填入就可以根据自己的具体需要进行具体的填入了!!
* */
//下面是借用网络上的内容对其他类型的对象进行的简单说明
//ws 为WritableSheet的对象
/* //2.
Number labelN = new Number(0,1,3.1415926);
ws.addCell(labelN);
//添加带有formatting的Number对象
Numberformat nf = new Numberformat("#.##");
WritableCellformat wcfN = new WritableCellformat(nf);
Number labelNF = new jxl.write.Number(1,1,3.1415926,wcfN); //在b2单元格加入数据且是带有带有格式化的Number对象
ws.addCell(labelNF);
//3.添加Boolean对象
Boolean labelB = new jxl.write.Boolean(0,2,false);
ws.addCell(labelB);
//4.添加DateTime对象
jxl.write.DateTime labelDT = new jxl.write.DateTime(0,3,new java.util.Date());
ws.addCell(labelDT);
//添加带有formatting的Dateformat对象
Dateformat df = new Dateformat("dd MM yyyy hh:mm:ss");
WritableCellformat wcfDF = new WritableCellformat(df);
DateTime labelDTF = new DateTime(1,3,new java.util.Date(),wcfDF);
ws.addCell(labelDTF);
//添加图片对象,jxl只支持png格式图片
File image = new File("f:\\2.png");
WritableImage wimage = new WritableImage(0,1,2,2,image);
ws.addImage(wimage);*/
//************************************************************************
//写入工作表
wbook.write();
wbook.close();
outputStream.close();
//***********************下面是对创建的excel的导出部分************************
//其实就是把刚才生成的excel下载下来,这里就不在累述 了
File file=new File(basePath+number+".xls");
HttpServletResponse response=PortalUtil.getHttpServletResponse(actionResponse);
response.setContentType("application/x-msdownload");
response.setHeader("Content-Disposition","attachment;filename="+file.getName());
response.setHeader("Content-Disposition","attachment;filename="+new String(file.getName().getBytes("gbk"),"iso-8859-1"));
FileInputStream fis=new FileInputStream(file);
BufferedInputStream buff=new BufferedInputStream(fis);
byte [] b=new byte[1024];
long k=0;
OutputStream myout=response.getOutputStream();
while(k<file.length()){
int j=buff.read(b,0,1024);
k+=j;
myout.write(b,0,j);
}
myout.flush();
fis.close();
myout.close();
file.delete();
}