使用java在excel表单个单元格中逐行显示来自oracle的逗号分隔数据

时间:2014-05-11 08:46:47

标签: java excel apache-poi

我在db中有数据读取

  

数据= A,B,C,d

我需要使用java将这个数据导出到单个单元格下的excel文件中,这应该像这样读取

  

     

B'/ P>      

C

     

d

我已完成导出部分,但无法将上述值放在单个单元格下。我现在已经这样做了,但错了。

   String Data=getDataVO.getData();

     String Data1[]=Data.split(",");

for(int i=0;i<=Data1.length;i++){

   String dt=Data1[i].concat(newline);
           ExcelUtil.setCell(row, ExcelConstants.ONE, dt, style);}

请帮助。

2 个答案:

答案 0 :(得分:0)

我试图从不完整的问题猜测你的情景。但是你似乎在for循环的每次迭代中都重置了单元格的内容。你的for循环限制条件也是一个接一个,这将导致索引越界异常。

请改为尝试:

String NEW_LINE = ...;

String data = getDataVO.getData();
String splitData[] = data.split(",");

String cellContents = "";
for(int i = 0; i < splitData.length; i++)
{
    cellContents = cellContents.concat(splitData[i])
                               .concat(NEW_LINE);
}

ExcelUtil.setCell(row, ExcelConstants.ONE, cellContents, style);

如果你有更多的元素,使用StringBuilder而不是concat()可能更有效。

答案 1 :(得分:0)

很抱歉,如果我不正确地传达了这个问题。

以下代码符合我的条件。

apache.poi.hssf。是我使用的,Excel常量是定制的。

如果有替代方案,请随时提出建议以改善我的答案。 cellstyle.setWrapText(true); cell.setCellStyle(cellstyle); String Data=getDataVO.getData(); data1=data.replaceAll(",","\n"); ExcelUtil.setCell(row, ExcelConstants.ONE, data1, cellstyle);

谢谢。