`

jxl 导出关键代码

阅读更多
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();
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics