java 写入excel 为什么数据只有一行

public static boolean TransferDataToExcel(ArrayList dataArrayList, int Colum, int Row) {
DBData.dataStrings = new String[Row][Colum];
Iterator iterator = dataArrayList.iterator();
int i = 0;
while(iterator.hasNext())
{
String[] temp =((String) iterator.next()).split(",");
for(int j = 0; j < Colum; j ++)
{
DBData.dataStrings[i][j] = temp[j];
}
}
File file = new File(mDestXlsFilename);
WritableWorkbook wwb=null;
try {
wwb = Workbook.createWorkbook(file);
WritableSheet sheet = wwb.createSheet("Sheet1", 0);
for(int row = 0; row < DBData.RowCount; row++)
{
for(int colum = 0; colum < DBData.ColumCount ; colum++)
{
//LogUtil.LogToScreen(Data[row][colum]);
if(row >= 1000)
{
//LogUtil.LogToScreen("row = " + row + "colum = " + colum);
break;
}
Label labelC = new Label(colum, row, DBData.dataStrings[row][colum]);

sheet.addCell(labelC);
}
}
wwb.write();
wwb.close();
return true;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RowsExceededException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (WriteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 从内存中写入文件中
try {
if(wwb != null)
{
wwb.write();
wwb.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (WriteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
哪位大神帮忙看看,每次写入后打开只有最后一行有东西,这个数据量大概是15列*5000行
全是string格式

/**
*
* @param list
* @param object
* @param pathAndName
*/

public void insertExcel3(List<Object[]> list, String pathAndName)
throws Exception {
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("my_gongzuobu_1");// 设置工作簿的名字

// 要生成的列数
int columeSize = list.get(0).length;

for (int i = 0; i < list.size(); i++) {

HSSFRow row = sheet.createRow(i);// 每循环一次创建一行

Object[] o = list.get(i);
for (int j = 0; j < columeSize; j++) {
HSSFCell cell = row.createCell((short) j);// 单元格
cell.setEncoding(HSSFCell.ENCODING_UTF_16);// 设置编码格式为支持中文

cell.setCellValue(o[j].toString());
}

}

File file = new File(pathAndName + ".xls"); // 生成的excel文件将要在这个路径下生成

try {
OutputStream os = new FileOutputStream(file);
wb.write(os);
os.close();
} catch (Exception e) {
e.printStackTrace();
}

}
你用这个方法~
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-06-16
你要是debug一下 就可以看出来了,
你代码第5行的while循环中 i 一直是0, 它没有变过,
所以DBData.dataStrings最后也只有一行。
因此在while循环最后加一个 i++,如下
while(iterator.hasNext())
{
String[] temp =((String) iterator.next()).split(",");
for(int j = 0; j < Colum; j ++)
{
DBData.dataStrings[i][j] = temp[j];
}
i++;
}本回答被提问者和网友采纳