import java.io.File;
import java.io.IOException;
import java.io.Serializable;
import java.util.List;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.poi.hssf.usermodel.HSSFCell;
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.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
public class ReportExportExcel implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
protected final Log logger = LogFactory.getLog(getClass());
public void createSheet(HSSFWorkbook wb,long rptno, String filename,
HttpServletResponse response) {
try {
SAXBuilder sb = new SAXBuilder();
Document doc = sb.build(new File(filename));
String excelname = "report_" + rptno + ".xls";
String sheetname = "report_" + rptno;
HSSFSheet sheet = wb.createSheet(sheetname);
Element root = doc.getRootElement();
List list = root.getChildren();
HSSFCellStyle headingCellStyle = wb.createCellStyle();
headingCellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
HSSFFont headingCellFont = wb.createFont();
headingCellFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
headingCellStyle.setFont(headingCellFont);
HSSFRow row;
row = sheet.createRow((short) 0);
if (list != null && list.size() > 0) {
Element element = (Element) list.get(0);
int length = element.getChildren().size();
for (int i = 0; i < length; i++) {
String columnName = ((Element) element.getChildren().get(i))
.getName();
if (columnName == null)
columnName = "";
else if (columnName.length() >= 1)
columnName = columnName.substring(0, 1).toUpperCase()
+ columnName.substring(1);
HSSFCell cell = row.createCell((short) (i));
cell.setCellValue(columnName);
cell.setCellStyle(headingCellStyle);
}
}
short rowIndex = 0;
for (int i = 0; i<list.size(); i++) {
Element section = (Element) list.get(i);
List sect = section.getChildren();
row = sheet.createRow((short) ++rowIndex);
for (int colIndex = 0; colIndex < sect.size(); colIndex++) {
HSSFCell cell = row.createCell((short) colIndex);
cell.setCellValue(((Element) sect.get(colIndex)).getText());
}
}
writeExcelFile(wb, response, excelname);
} catch (Exception e) {
logger.error(e);
}
}
public void writeExcelFile(HSSFWorkbook wb,
HttpServletResponse response, String fileName) throws IOException {
response.reset();
ServletOutputStream sos = response.getOutputStream();
response.setContentType("application/ms-excel");
response.setHeader("Content-disposition", "attachment; filename="
+ fileName);
wb.write(sos);
sos.flush();
sos.close();
}
}
import java.io.IOException;
import java.io.Serializable;
import java.util.List;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.poi.hssf.usermodel.HSSFCell;
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.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
public class ReportExportExcel implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
protected final Log logger = LogFactory.getLog(getClass());
public void createSheet(HSSFWorkbook wb,long rptno, String filename,
HttpServletResponse response) {
try {
SAXBuilder sb = new SAXBuilder();
Document doc = sb.build(new File(filename));
String excelname = "report_" + rptno + ".xls";
String sheetname = "report_" + rptno;
HSSFSheet sheet = wb.createSheet(sheetname);
Element root = doc.getRootElement();
List list = root.getChildren();
HSSFCellStyle headingCellStyle = wb.createCellStyle();
headingCellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
HSSFFont headingCellFont = wb.createFont();
headingCellFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
headingCellStyle.setFont(headingCellFont);
HSSFRow row;
row = sheet.createRow((short) 0);
if (list != null && list.size() > 0) {
Element element = (Element) list.get(0);
int length = element.getChildren().size();
for (int i = 0; i < length; i++) {
String columnName = ((Element) element.getChildren().get(i))
.getName();
if (columnName == null)
columnName = "";
else if (columnName.length() >= 1)
columnName = columnName.substring(0, 1).toUpperCase()
+ columnName.substring(1);
HSSFCell cell = row.createCell((short) (i));
cell.setCellValue(columnName);
cell.setCellStyle(headingCellStyle);
}
}
short rowIndex = 0;
for (int i = 0; i<list.size(); i++) {
Element section = (Element) list.get(i);
List sect = section.getChildren();
row = sheet.createRow((short) ++rowIndex);
for (int colIndex = 0; colIndex < sect.size(); colIndex++) {
HSSFCell cell = row.createCell((short) colIndex);
cell.setCellValue(((Element) sect.get(colIndex)).getText());
}
}
writeExcelFile(wb, response, excelname);
} catch (Exception e) {
logger.error(e);
}
}
public void writeExcelFile(HSSFWorkbook wb,
HttpServletResponse response, String fileName) throws IOException {
response.reset();
ServletOutputStream sos = response.getOutputStream();
response.setContentType("application/ms-excel");
response.setHeader("Content-disposition", "attachment; filename="
+ fileName);
wb.write(sos);
sos.flush();
sos.close();
}
}
1327

被折叠的 条评论
为什么被折叠?



