繁体   English   中英

尝试从Excel中获取数据,然后将其存储在数组中,然后再打印

[英]Trying to get data from excel then store it inside array and later print it

我正在尝试从Excel文件中读取数据。 当我运行下面的代码时,它可以正常运行,但不会提供任何数据。 当我检查代码时,我发现全局变量rownum尚未初始化并给出默认值0。但是在getData(int i)方法中,rownum给出的值为14。我试图获取所有字符串数据通过使用getData(int i)方法在excel文件中可用,然后尝试将它们存储在data []数组中。 再次在setData方法内,我试图将存储在data []数组内的所有项目复制到字符串值。 谁能帮忙。 我是Java新手。 包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.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;


@SuppressWarnings("unused")
public class DataFromExcel {
  String[] data = new String[15];
  static int rownum;

 public String[] getData(int i) throws InvalidFormatException, IOException{
   File file = new File("C:\\Users\\Admin\\Desktop\\ScreenShot\\Excel.xls");
   FileInputStream input = new FileInputStream(file);
   Workbook excel = WorkbookFactory.create(input);
   Sheet sheet = excel.getSheet("Data");
   rownum = sheet.getLastRowNum();
   System.out.println(rownum);


     for(int j=1;j<=rownum;j++){
         Row row = sheet.getRow(rownum);
         while(row != null){
         if(row.getCell(j) != null){
         String cell = row.getCell(j).getStringCellValue();
         while(cell != null){
             data[j]=cell;
             System.out.println(data[1]);
         }//while cell
        }//if row 
      }//for  
     }//row while
    return data;
   }//getData 
  public String setData(int i){
      String value = null;
      for(i=1; i<=data.length;i++){
          value =data[i];
      }//for setData
    return value;
  }//setData

 public static void main(String[] args) throws InvalidFormatException, IOException{
    DataFromExcel get = new DataFromExcel();
    System.out.println(rownum);
    get.getData(1);
    if(get.data != null){
    System.out.println(get.setData(1));}
 }//main
}// DataFromExcel

您已经知道(我期望如此) ,该程序的执行是从main()方法开始的。现在,当您调用getData(int i)方法时,此时rownum为零(显然没有代码在修改。它),但随后您调用了带有参数的getData(int i) ,该参数随后根据其中的指令更改了rownum的值,请尝试添加另一个System.out.prinltn()作为main()方法的结束行并打印rownum.的值rownum.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM