package org.fh.util
import java.util.Date
import java.util.List
import java.util.Map
import javax.servlet.http.HttpServletRequest
import javax.servlet.http.HttpServletResponse
import org.apache.poi.hssf.usermodel.HSSFCellStyle
import org.apache.poi.hssf.usermodel.HSSFFont
import org.apache.poi.hssf.usermodel.HSSFRow
import org.apache.poi.hssf.usermodel.HSSFSheet
import org.apache.poi.hssf.usermodel.HSSFWorkbook
import org.apache.poi.ss.usermodel.HorizontalAlignment
import org.apache.poi.ss.usermodel.VerticalAlignment
import org.apache.poi.ss.usermodel.Workbook
import org.fh.entity.PageData
import org.springframework.web.servlet.view.document.AbstractXlsView
/**
* 说明:导出到EXCEL
* 作者:FH Admin
* from:fhadmin.cn
*/
public class ObjectExcelView extends AbstractXlsView{
@Override
protected void buildExcelDocument(Map<String, Object> model,
Workbook workbook, HttpServletRequest request,
HttpServletResponse response) throws Exception {
// TODO Auto-generated method stub
Date date = new Date()
String filename = DateUtil.date2Str(date, "yyyyMMddHHmmss")
HSSFSheet sheet
response.setContentType("application/octet-stream")
response.setHeader("Content-Disposition", "attachment
HSSFWorkbook book = (HSSFWorkbook) workbook
sheet = book.createSheet("sheet1")
List<String> titles = (List<String>) model.get("titles")
int len = titles.size()
HSSFCellStyle headerStyle = book.createCellStyle()
headerStyle.setAlignment(HorizontalAlignment.CENTER)
headerStyle.setVerticalAlignment(VerticalAlignment.CENTER)
HSSFFont headerFont = book.createFont()
headerFont.setBold(true)
headerFont.setFontHeightInPoints((short)11)
headerStyle.setFont(headerFont)
short height=25*20
HSSFRow row = sheet.createRow(0)
for(int i=0
String title = titles.get(i)
row.setRowStyle(headerStyle)
row.createCell(i).setCellValue(title)
}
sheet.getRow(0).setHeight(height)
HSSFCellStyle contentStyle = book.createCellStyle()
contentStyle.setAlignment(HorizontalAlignment.CENTER)
List<PageData> varList = (List<PageData>) model.get("varList")
int varCount = varList.size()
for(int i=0
PageData vpd = varList.get(i)
HSSFRow rows = sheet.createRow(i+1)
for(int j=0
String varstr = vpd.getString("var"+(j+1)) != null ? vpd.getString("var"+(j+1)) : ""
rows.setRowStyle(contentStyle)
rows.createCell(j).setCellValue(varstr)
}
}
}
}