当前位置: 代码迷 >> Java相关 >> Java poi 导出excel 有关问题 ,请问一下各位前辈们到底是哪里有有关问题,多谢
  详细解决方案

Java poi 导出excel 有关问题 ,请问一下各位前辈们到底是哪里有有关问题,多谢

热度:80   发布时间:2016-04-22 21:05:14.0
Java poi 导出excel 问题 ,请教一下各位前辈们到底是哪里有问题,谢谢
点击导出就报这个错
之前不是报的这个错、是报的response has already called ,现在又报不出那个错了。

但是导出的数据没问题,所以之前就暂时没解决,但部署到服务器上点导出就直接卡了,这是导出excel代码

public class PoiExportExcel {

public HSSFWorkbook exportExcel(ExcelFile file) {
// 创建一个Workbook,对应一个Excel文件
HSSFWorkbook wb = new HSSFWorkbook();
HSSFRow row = null;// 定义行
HSSFCell cell = null;// 定义列
double width = 32500 / file.getColNum(); // 将每列宽度平均分(32500为估算大概A4宽度)
// 在Workbook中添加一个sheet,对应Excel文件中的sheet。
HSSFSheet sheet = wb.createSheet(file.getFileName());
// 打印设置
HSSFPrintSetup hps = sheet.getPrintSetup();
hps.setPaperSize(HSSFPrintSetup.A4_PAPERSIZE); // 设置A4纸
hps.setLandscape(true); // 将页面设置为横向打印模式
// sheet.setHorizontallyCenter(true); // 设置打印页面为水平居中
// sheet.setVerticallyCenter(true); // 设置打印页面为垂直居中
// 在sheet中添加第0行,创建单元格,并设置值标题, 设置标题样式
row = sheet.createRow(0);
cell = row.createCell(0);
cell.setCellValue(file.getFileName());
cell.setCellStyle(titleStyle(wb));
sheet.addMergedRegion(new CellRangeAddress(0, 2, 0,
file.getColNum() - 1));
// 生成表头列
for (int i = 0; i < file.getHeadRowNum(); i++) {
row = sheet.createRow(i + 3);// 三是标题所占行数
if (!file.getHeaderHeight().isEmpty()) {
row.setHeight((short) Integer.parseInt(file.getHeaderHeight()));
}
String[] header = file.getListTableHeader().get(i);
for (int j = 0; j < file.getColNum(); j++) {
cell = row.createCell(j);
cell.setCellValue(header[j]);// 给表头赋值
cell.setCellStyle(headStyle(wb));
}
}

// 合并单元格
if (file.getListMergeColumn() != null
&& file.getListMergeColumn().size() > 0) {
for (int i = 0; i < file.getListMergeColumn().size(); i++) {
sheet.addMergedRegion(file.getListMergeColumn().get(i));
}
}
// 将数据写入表格
if (file.getListData().size() > 0) {
for (int i = 0; i < file.getListData().size(); i++) {
row = sheet.createRow((int) i + file.getHeadRowNum() + 3);// rowNum为表头行数,3是标题
if (!file.getDataHeight().isEmpty()) {
row.setHeight((short) Integer.parseInt(file.getDataHeight()));
}
if (file.isHaveOrder()) {
cell = row.createCell(0);
if (file.isTotal()) {
cell.setCellValue(i);
} else {
cell.setCellValue(i + 1);
}
cell.setCellStyle(bodyStyle(wb));
}
Object[] o = (Object[]) file.getListData().get(i);
for (int j = 0; j < o.length; j++) {
sheet.setColumnWidth(j, (short) width);
// 创建单元格,并设置值
if (file.isHaveOrder()) {
cell = row.createCell(j + 1);
} else {
cell = row.createCell(j);
}
if (o[j] != null) {
cell.setCellValue(o[j].toString());
}
cell.setCellStyle(bodyStyle(wb));
}
}
}

return wb;
}

}

这个是action

 public class TctabDriverAction extends BaseAction {

private static final long serialVersionUID = 1L;
private static final int powerModel = UserPower.M115;
@Resource
private TctabDriverDao dao;

/**
 * 查询数据
 * 
 * @return
 */

// 返回页面
@SuppressWarnings("unchecked")
public String list() {

String result = "";
// 权限控制
if (!UserPower.hasModelPower(request.getSession(), powerModel)) {
return "nopower";
}
String areaCode = request.getParameter("areaCode");
String checked = request.getParameter("checked") == null ? "2"
: request.getParameter("checked");
String pageSize = request.getParameter("pageSize");
String pageNum = request.getParameter("pageNum");
int intPageSize = pageSize == null ? 15 : Integer.parseInt(pageSize);
int intPageNum = pageNum == null ? 1 : Integer.parseInt(pageNum);
String excel = request.getParameter("excel");
boolean isRegion = false;

// 根据用户输入参数查询,并返回数据结果
PageList<Object> pageList = new PageList<Object>();
SystabOrganization org = UserPower
.getSessionOrganization(ServletActionContext.getContext()
.getSession());

try {
// 查询数据
@SuppressWarnings("rawtypes")
  相关解决方案