gpt4 book ai didi

java - 使用 Apache-POI 创建的 Excelsheet 没有标题

转载 作者:行者123 更新时间:2023-11-29 03:44:20 27 4
gpt4 key购买 nike

下面的代码片段将结果集数据导出到 excel 文件,但它不会创建标题。我用过

HSSFRow rowhead = sheet.createRow((short) 0);创建标题,但创建的 Excel 工作表仅包含没有标题的数据。可能是什么问题?请指导。

public boolean prepareExcelFilefromQuery(Collection<List> queryDataRowWise,HttpServletResponse response)        
HSSFRow row = null;
HSSFCell cell=null;
Integer rowCounter=0;
Integer colCounter;
boolean success=false;
try {

Iterator<List> rowIterator = queryDataRowWise.iterator();

HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("Zero_Report_N");

HSSFRow rowhead = sheet.createRow((short) 0);

rowhead.createCell((short) 0).setCellValue("APPLN_RECD_DT");
rowhead.createCell((short) 1).setCellValue("POLICY_NO");
rowhead.createCell((short) 2).setCellValue("APPLN_NO");
rowhead.createCell((short) 3).setCellValue("OR_NUMBER");


while(rowIterator.hasNext())
{
colCounter=0;

queryDataColWise=(List)rowIterator.next();

Iterator colIterator = queryDataColWise.iterator();

row = sheet.createRow(rowCounter++);
while(colIterator.hasNext())
{
cell = row.createCell(colCounter++);


Object o = colIterator.next();

if(o instanceof java.lang.String )
{
String s=(String)o;
cell.setCellValue(s);
}
else if(o instanceof java.lang.Double )
{
Double d=(Double)o;
cell.setCellValue(d);
}
else if(o instanceof java.lang.Integer )
{
Integer i=(Integer)o;
cell.setCellValue(i);
}
else if(o instanceof java.util.Date )
{
Date date=(Date)o;

SimpleDateFormat FORMATTER;

FORMATTER = new SimpleDateFormat("MM/dd/yyyy");
String date11 = FORMATTER.format(date);

HSSFCellStyle cellStyle = workbook.createCellStyle();
cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy"));
cell.setCellStyle(cellStyle);
cell.setCellValue(FORMATTER.parse(date11));
}
}
}

workbook.write(response.getOutputStream());
success=true;
catch (Exception e) {
logger.debug("Exception caught in prepareExcelFilefromQuery class ", e);
}
return success;
}

其中 expReportDetailCol 包含结果集数据 Collection<List> expReportDetailCol = new ArrayList<List>();

最佳答案

您需要 ++rowCounter 而不是 rowCounter++rowCounter++ 表示给我当前值,然后递增。您的 rowCounter 值从零开始,因此您的第一组数据会覆盖它

要么在处理完标题后增加 rowCounter,要么改用++rowCounter

关于java - 使用 Apache-POI 创建的 Excelsheet 没有标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11667589/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com