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(0, 0, titles.length-1, 0);//合并列:从第一行的第一列开始合并,直到第一行的第四列为止。
writableSheet.setRowView(0, 400);//设置第一行的行高
writableSheet.addCell(new Label(0, 0, 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文件的第三行开始写入数据。
}
}
}
}
* $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(0, 0, titles.length-1, 0);//合并列:从第一行的第一列开始合并,直到第一行的第四列为止。
writableSheet.setRowView(0, 400);//设置第一行的行高
writableSheet.addCell(new Label(0, 0, 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