1 Java导出Excel文件
function excelOut(){
window.location.href="../getFileToExcel/"+taskId;
}
String taskId = getPara(0);
// 获取数据
List<Taskorderuser> list = ts.getTaskDetailByTaskId(taskId);
// excel标题
String[] title = { "手机号", "类别", "发送时间"};
// excel文件名
String fileName = "任务详情表" + System.currentTimeMillis() + ".xls";
// sheet名
String sheetName = "任务详情表";
String[][] content = new String[list.size()][];
for (int i = 0; i < list.size(); i++) {
content[i] = new String[title.length];
Taskorderuser tk = list.get(i);
content[i][0] = tk.getTelephone();
content[i][1] = tk.getCommunication();
content[i][2] = DateUtil.getLongToDate(tk.getSendTime());
}
// 创建HSSFWorkbook
HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook(sheetName, title,
content, null);
try {
try {
String userAgent = getRequest().getHeader("USER-AGENT");
//String finalFileName = null;
if(StringUtils.contains(userAgent, "MSIE")){//IE浏览器
fileName = URLEncoder.encode(fileName,"UTF8");
}else if(StringUtils.contains(userAgent, "Mozilla")){//google,火狐浏览器
fileName = new String(fileName.getBytes(), "ISO8859-1");
}else{
fileName = URLEncoder.encode(fileName,"UTF8");//其他浏览器
}
System.out.println(fileName);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
getResponse().setContentType("application/vnd.ms-excel");
getResponse().setHeader("Content-Disposition", "attachment;filename="+ fileName);
getResponse().addHeader("Pargam", "no-cache");
getResponse().addHeader("Cache-Control", "no-cache");
OutputStream os = getResponse().getOutputStream();
wb.write(os);
os.flush();
os.close();
} catch (Exception e) {
e.printStackTrace();
}
2 ExcelUtil类
package com.mms.service;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class ExcelUtil {
/**
* 导出Excel
* @param sheetName sheet名称
* @param title 标题
* @param values 内容
* @param wb HSSFWorkbook对象
* @return
*/
public static HSSFWorkbook getHSSFWorkbook(String sheetName,String []title,String [][]values, HSSFWorkbook wb){
// 第一步,创建一个HSSFWorkbook,对应一个Excel文件
if(wb == null){
wb = new HSSFWorkbook();
}
// 第二步,在workbook中添加一个sheet,对应Excel文件中的sheet
HSSFSheet sheet = wb.createSheet(sheetName);
// 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制
HSSFRow row = sheet.createRow(0);
// 第四步,创建单元格,并设置值表头 设置表头居中
HSSFCellStyle style = wb.createCellStyle();
//style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
//style.setAlignment(align);
//声明列对象
HSSFCell cell = null;
//创建标题
for(int i=0;i<title.length;i++){
cell = row.createCell(i);
cell.setCellValue(title[i]);
cell.setCellStyle(style);
}
//创建内容
for(int i=0;i<values.length;i++){
row = sheet.createRow(i + 1);
for(int j=0;j<values[i].length;j++){
//System.out.println("-----"+values.length+" "+values[i].length+" "+values[i][j]);
//将内容按顺序赋给对应的列对象
row.createCell(j).setCellValue(values[i][j]);
}
}
return wb;
}
}