javaanddonet

javaanddonet

常用链接

统计

最新评论

Jexcel

/*
 * $Log: ExportExcelJexcelUtils.java,v $
 * Revision 1.1  2010/09/28 01:59:16  fengwj
 * *** empty log message ***
 *
 
*/

package com.sendgoodsonline.util.exportexcel;

import java.io.IOException;
import java.io.OutputStream;
import java.util.Date;

import javax.servlet.http.HttpServletResponse;

import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.Colour;
import jxl.format.UnderlineStyle;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;

/**
 * Title: ExportExcelJexcelUtils<br>
 * Description: <br>
 * Company: ORCHIS<br>
 * Copyright @ 2010 ORCHIS .All rights reserved.<br>
 * 
@author FengWJ
 * @createDate Sep 27, 2010
 * 
@version $Revision: 1.1 $
 
*/

public class ExportExcelJexcelUtils {
    
    
/**
     * 得到Excel文件Sheet的格式。
     * 
@return
     * 
@throws WriteException
     * 
@author FengWJ
     * @date Sep 27, 2010
     
*/

    
public WritableCellFormat getSheetWritableCellFormat() throws WriteException{
        WritableFont writableFont 
= new WritableFont(WritableFont.ARIAL, 16,WritableFont.BOLD,false,UnderlineStyle.NO_UNDERLINE,Colour.BLACK);   
        WritableCellFormat writableCellFormat 
= new WritableCellFormat(writableFont);//设置字体
        writableCellFormat.setBackground(Colour.LIGHT_TURQUOISE);//设置背景颜色
        writableCellFormat.setAlignment(Alignment.CENTRE);//居中
        writableCellFormat.setWrap(true);//设置自动换行
        return writableCellFormat;
    }

    
    
/**
     * 得到Excel文件标题的格式。
     * 
@param yourClass
     * 
@return
     * 
@throws WriteException
     * 
@author FengWJ
     * @date Sep 27, 2010
     
*/

    
public WritableCellFormat getTitleWritableCellFormat() throws WriteException{
        WritableFont writableFont 
= new WritableFont(WritableFont.ARIAL, 10,WritableFont.BOLD,false,UnderlineStyle.NO_UNDERLINE,Colour.BLACK);
        WritableCellFormat writableCellFormat 
= new WritableCellFormat(writableFont);//设置字体
        writableCellFormat.setBackground(Colour.SKY_BLUE);//设置背景颜色
        writableCellFormat.setWrap(true);//设置自动换行
        return writableCellFormat;
    }

    
    
/**
     * 设置Excle文件中指定的Sheet页面中的标题内容。
     * 
@param titles 标题数组
     * 
@param writableSheet Excel文件中Sheet的对象
     * 
@param writableCellFormat 标题的样式对象
     * 
@throws RowsExceededException
     * 
@throws WriteException
     * 
@author FengWJ
     * @date Sep 27, 2010
     
*/

    
public void createExcleTitle(String[] titles,WritableSheet writableSheet,WritableCellFormat writableCellFormat) throws RowsExceededException, WriteException{
        
if(titles!=null&&titles.length>0){
            
for(int i=0;i<titles.length;i++){
                writableSheet.addCell(
new Label(i,1,titles[i],writableCellFormat));//Excle文件的标题设置在Excle文件的第二行。
            }

        }

    }

    
    
/**
     * 根据文件名称,创建一个Excle文件。
     * 
@param excelFileName
     * 
@param httpServletResponse
     * 
@return 创建好的Excel文件对象。
     * 
@throws IOException
     * 
@author FengWJ
     * @date Sep 27, 2010
     
*/

    
public WritableWorkbook createExcleFile(String excelFileName,HttpServletResponse httpServletResponse) throws IOException{
        OutputStream outputStream 
= httpServletResponse.getOutputStream();//得到输出流
        httpServletResponse.reset();//清空输出流
        httpServletResponse.setHeader("Content-disposition""attachment; filename="+excelFileName+".xls");//设定输出文件头
        httpServletResponse.setContentType("application/msexcel");//定义输出类型
        WritableWorkbook writableWorkbook = Workbook.createWorkbook(outputStream);//建立excel文件
        return writableWorkbook;
    }

    
    
/**
     * 在给定的Excel文件中创建一个Sheet页面。
     * 
@param sheetName Sheet页面的标题名称。
     * 
@param writableWorkbook Excel文件对象。
     * 
@param titles Excel文件的标题,如果不想设置Sheet的名称为大标题,则传入null。否则传入Excle文件标题数组。
     * 
@return writableSheet 创建好的Sheet对象。
     * 
@author FengWJ
     * 
@throws WriteException 
     * @date Sep 27, 2010
     
*/

    
public WritableSheet createExcelSheet(String sheetName,WritableWorkbook writableWorkbook,String[] titles) throws WriteException{
        WritableSheet writableSheet 
= writableWorkbook.createSheet(sheetName, 0);//创建一个sheet
        
//如果sheet的标题不为空,标识需要将sheet的名称设置为第一行的标题。
        if(titles != null && titles.length>0){
            writableSheet.mergeCells(
00, titles.length-10);//合并列:从第一行的第一列开始合并,直到第一行的第四列为止。
            writableSheet.setRowView(0400);//设置第一行的行高
            writableSheet.addCell(new Label(00, sheetName, this.getSheetWritableCellFormat()));
        }

        
return writableSheet;
    }

    
    
    
/**
     * 向Excel文件中的单元格中写入数据。
     * 
@param writableSheet 当前Excel文件中的Sheet对象
     * 
@param dataArray 需要插入的数据
     * 
@param rowNumber 数据插入的位置-行号
     * 
@throws RowsExceededException
     * 
@throws WriteException
     * 
@author FengWJ
     * @date Sep 27, 2010
     
*/

    
public void addExcelCellText(WritableSheet writableSheet,String[] dataArray,int rowNumber) throws RowsExceededException, WriteException{
        
if(dataArray != null && dataArray.length>0){
            
for(int i = 0; i< dataArray.length; i++){
                writableSheet.addCell(
new Label(i,rowNumber+2,dataArray[i]));//从Excel文件的第三行开始写入数据。
            }

        }

    }

}



o°cboy

posted on 2010-09-28 11:39 javaanddonet 阅读(184) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: