【发布时间】:2014-09-25 22:07:49
【问题描述】:
在下面提到的代码中,我试图从 excel 表中获取数据并将它们存储在数组中。我已经编写了代码来从我的 ReadExcelData 方法中的 excel 文件中获取数据。现在我面临的问题在我的主要方法中,当我使用数组打印数据时,数据被多次打印。我发现,因为我在两个内部使用了 System.out.println() ,这就是为什么它被多次打印的原因。为了解决这个问题,我从 ReadExcelData 方法中删除了 System.out.println() (注释 - 在下面的代码中,粗体 System.out.println() 是我删除的那个),一旦我这样做了,我就无法得到任何输出。请告诉我我应该怎么做才能只从 ReadExcelData 获取数据而不打印它,因为我想在我的主要方法中打印数据。
package com.selenium;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.*;
@SuppressWarnings("unused")
public class ReadExcelData {
static String[] data = new String[15];
public String getData() throws InvalidFormatException, IOException{
String data="Initial";
File file = new File("C:\\Users\\Admin\\Desktop\\ScreenShot\\Excel.xls");
FileInputStream input = new FileInputStream(file);
Workbook work = WorkbookFactory.create(input);
Sheet sheet = work.getSheet("Data");
int rownum=sheet.getLastRowNum();
//System.out.println("Row number = "+rownum);
for(int i=0;i<rownum+1; i++){
Row row=sheet.getRow(i);
if(row != null){
for(int j=0; j<row.getLastCellNum();j++){
//System.out.println(row.getLastCellNum());
if(row.getCell(j) != null){
data = row.getCell(j).getStringCellValue();
if(data != null){
**System.out.println(data);**
}//if2
}//if1
}//for2
}//if3
}//for1
return data;
}//getdata
public static void main(String[] args) throws InvalidFormatException, IOException{
ReadExcelData read =new ReadExcelData();
for(int i=0;i<data.length;i++){
data[i]= read.getData();
}
}//main
}//class
Code block which is giving problem-
if(data != null){
**System.out.println(data);**
}//if2
【问题讨论】:
-
read.getData从Excel.xls读取所有数据并打印出来。你的主程序调用read.getData15 次。当你调用它 15 次时,你认为会发生什么?
标签: java arrays excel for-loop