excel导出

package com.seaway.oa.util;


import java.io.OutputStream;
import java.util.List;


import org.apache.commons.lang.StringUtils;


import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.Colour;
import jxl.format.UnderlineStyle;
import jxl.format.VerticalAlignment;
import jxl.write.Label;
import jxl.write.NumberFormat;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
@SuppressWarnings("unchecked")
public class ExcelExport
{
/*************************
* 功能:导出Execl工具类

* @param topHeader 文件标题
* @param encodingType 字符类型
* @param header 标题
* @param title 列标题
* @param list 数据集合
* @param count 数据值编号(总列数)
* @param columnView 列宽
*/
public static void export(String topHeader,String encodingType,String header, String[] title, List list, int count,int columnView)
{
int column = list.size();
try
{
// 定义输出类型
Struts2Util.getResponse().setContentType("application/vnd.ms-excel");
String filename = topHeader+".xls";
// if("UTF-8".equals(encodingType))
// {
filename=new String(filename.getBytes("gb2312"), "iso8859-1");
  // filename = URLEncoder.encode(""+topHeader+".xls", encodingType);
// }
// 设定输出头文件
Struts2Util.getResponse().setHeader("Content-disposition", "attachment;filename=" + filename);
// 标题
// String[] title = { "员工ID", "员工姓名", "亲和力", "积极性", "责任心","纪律遵守","总分"};
// 创建Excel
OutputStream os = Struts2Util.getResponse().getOutputStream();
// 创建工作薄
WritableWorkbook workbook = Workbook.createWorkbook(os);
// 创建工作表
WritableSheet sheet = workbook.createSheet(header, 0);
// 设置头行
WritableFont font = new WritableFont(WritableFont.ARIAL, 30, WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, Colour.GRAY_50);
WritableCellFormat formatHead = new WritableCellFormat(font);
formatHead.setAlignment(Alignment.CENTRE);
// 设置标题格式
WritableCellFormat formatTitle = new WritableCellFormat();
formatTitle.setAlignment(Alignment.CENTRE);
formatTitle.setBackground(Colour.GRAY_50);
// 设置内容格式
WritableCellFormat formatContent = new WritableCellFormat();
formatContent.setAlignment(Alignment.CENTRE);
formatContent.setVerticalAlignment(VerticalAlignment.CENTRE);
//设置数字内容格式
NumberFormat numberFormat = new NumberFormat("0.00");    //设置数字格式
WritableCellFormat numberFormatContent  = new WritableCellFormat(numberFormat); //设置表单格式
numberFormatContent.setAlignment(Alignment.CENTRE);
numberFormatContent.setVerticalAlignment(VerticalAlignment.CENTRE);

int a=1;
// 设置头部
if(header!=null&&!"".equals(header.trim())&&!header.substring(0, 1).matches("[0-9]")){
        sheet.addCell(new Label(0, 0, header, formatHead));
            sheet.mergeCells(0, 0, title.length - 1, 0);
        a=2;
}

// 设置标题
int levIn=0;
for (int i = 0; i < title.length; i++)
{
if (StringUtils.isNotEmpty(title[i])) {
sheet.addCell(new Label(levIn, a-1, title[i], formatTitle));
levIn++;
}
}


// 设置内容
for (int i = 0; i < column; i++)
{
Object[] obj = (Object[]) list.get(i);
int j = 0;
for (int k = 0; k < count; k++) {
String str = "";
if (obj[k] != null && !("").equals(obj[k])) {
str = obj[k].toString();
if (obj[k] instanceof Double) {
sheet.addCell(new jxl.write.Number(j++, i + a, Double.valueOf(str), numberFormatContent));
} else {
sheet.addCell(new Label(j++, i + a, str, formatContent));
}


}else{
sheet.addCell(new Label(j++, i + a, str, formatContent));
}


}
}
// 设置行宽
for (int i = 0; i < count; i++)
{
// 设置列宽
sheet.setColumnView(i, columnView);
}


workbook.write();
workbook.close();
os.close();
} catch (Exception e)
{
e.printStackTrace();
}
}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值