java excel导出

Model:

@Entity
@Table(name = "admin_alarmLog")
public class AlarmLog {
   
	private int id;
	private int userId;
	private String userName;
	private String userDepart;
	private String userEmail;
	private String userTelephone;
	private Date alarmTime;
	private String alarmContent;
	private String alarmMode;
	private String alarmState;
	private String result;
	private Date dealTime;
	private String dealDesc;
	
	
	@Id
	@Column(name = "id")
    @GeneratedValue(generator="AlarmLog_SEQ",strategy=GenerationType.SEQUENCE)
	@SequenceGenerator(name = "AlarmLog_SEQ", sequenceName = "AlarmLog_SEQ" ,allocationSize =1,initialValue=1)
		
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public int getUserId() {
		return userId;
	}
	public void setUserId(int userId) {
		this.userId = userId;
	}
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getUserDepart() {
		return userDepart;
	}
	public void setUserDepart(String userDepart) {
		this.userDepart = userDepart;
	}
	public String getUserEmail() {
		return userEmail;
	}
	public void setUserEmail(String userEmail) {
		this.userEmail = userEmail;
	}
	public String getUserTelephone() {
		return userTelephone;
	}
	public void setUserTelephone(String userTelephone) {
		this.userTelephone = userTelephone;
	}
	public Date getAlarmTime() {
		return alarmTime;
	}
	public void setAlarmTime(Date alarmTime) {
		this.alarmTime = alarmTime;
	}
	public String getAlarmContent() {
		return alarmContent;
	}
	public void setAlarmContent(String alarmContent) {
		this.alarmContent = alarmContent;
	}
	public String getAlarmMode() {
		return alarmMode;
	}
	public void setAlarmMode(String alarmMode) {
		this.alarmMode = alarmMode;
	}
	public String getAlarmState() {
		return alarmState;
	}
	public void setAlarmState(String alarmState) {
		this.alarmState = alarmState;
	}
	
	public String getResult() {
		return result;
	}
	public void setResult(String result) {
		this.result = result;
	}
	public Date getDealTime() {
		return dealTime;
	}
	public void setDealTime(Date dealTime) {
		this.dealTime = dealTime;
	}
	public String getDealDesc() {
		return dealDesc;
	}
	public void setDealDesc(String dealDesc) {
		this.dealDesc = dealDesc;
	}
	
	


 

 

//alarmLogExport.action

/**
  * 日志导出
  *
  */
 @SuppressWarnings("unchecked")
 public String alarmLogExport() throws IOException {
  
    
    try {

  // AlarmLog 是model

//数据库查询数据放到List
List<AlarmLog>   list = alarmLogService.getAlarmLogList(beginTime, endTime,alarmMode, result);
   } catch (Exception e1) {

   }

   response = (HttpServletResponse) ServletActionContext.getResponse();
   OutputStream os = null;
   try {
    os = response.getOutputStream();
   } catch (IOException e) {

   }
   response.reset();
   response.setHeader("Content-disposition", "attachment; filename="
    + "alarmLog.xls");
   response.setContentType("application/msexcel");
   LogExport  excelExport = new LogExport();
   inputStream = excelExport.exportAlarmLog(list, os);
   return SUCCESS;
 }

 


 

//工具类  //LogExport.java

import java.io.ByteArrayInputStream;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import com.model. AlarmLog;



public class LogExport {

 //警报日志AlarmLog
 public InputStream exportAlarmLog(List<AlarmLog> alarmLog, OutputStream os) throws IOException {
  

  //SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  //创建excel
  HSSFWorkbook hwb = new HSSFWorkbook(); 
  int k = 1;

//创建sheet页
  HSSFSheet sheet = hwb.createSheet("警报日志" + k); 
  k++;

//创建标题行
  HSSFRow row1 = sheet.createRow(0);
  row1.createCell(0).setCellValue(new HSSFRichTextString("通知的用户名"));
  row1.createCell(1).setCellValue(new HSSFRichTextString("通知的用户组织"));
  row1.createCell(2).setCellValue(new HSSFRichTextString("通知的用户邮箱"));
  row1.createCell(3).setCellValue(new HSSFRichTextString("通知的用户电话"));
  row1.createCell(4).setCellValue(new HSSFRichTextString("警报通知时间"));
  row1.createCell(5).setCellValue(new HSSFRichTextString("警报内容"));
  
  int row = 0;
  for (int i = 0; i < alarmLog.size(); i++) {
   if (i > 0 && i % 10000 == 0) {
    sheet = hwb.createSheet("警报日志" + k); // 建立新的BirthSheet对象
    k++;
    row1.createCell(0).setCellValue(new HSSFRichTextString("通知的用户名"));
    row1.createCell(1).setCellValue(new HSSFRichTextString("通知的用户组织"));
    row1.createCell(2).setCellValue(new HSSFRichTextString("通知的用户邮箱"));
    row1.createCell(3).setCellValue(new HSSFRichTextString("通知的用户电话"));
    row1.createCell(4).setCellValue(new HSSFRichTextString("警报通知时间"));
    row1.createCell(5).setCellValue(new HSSFRichTextString("警报内容"));
   }
   HSSFRow row2 = sheet.createRow((row % 10000) + 1);// 创建表格的行
   row2.createCell(0).setCellValue(new HSSFRichTextString(alarmLog.get(i).getUserName()));
   row2.createCell(1).setCellValue(new HSSFRichTextString(alarmLog.get(i).getUserDepart()));
   row2.createCell(2).setCellValue(new HSSFRichTextString(alarmLog.get(i).getUserEmail()));
   row2.createCell(3).setCellValue(new HSSFRichTextString(alarmLog.get(i).getUserTelephone()));
   row2.createCell(4).setCellValue(new HSSFRichTextString(df.format(alarmLog.get(i).getAlarmTime())));
   row2.createCell(5).setCellValue(new HSSFRichTextString(alarmLog.get(i).getAlarmContent()));
   row++;
  }
  try {
   hwb.write(os);
   os.flush();
   return new ByteArrayInputStream(hwb.getBytes());
  } catch (IOException e) {

   return null;
  }
 }

 

}


 

 

到此就成功导出了。

你可能感兴趣的:(java,Excel,导出)