【问题标题】:How to separate excel file by rows and paste them into variables?如何按行分隔excel文件并将它们粘贴到变量中?
【发布时间】:2016-12-02 22:20:57
【问题描述】:

这是我的 excel (.csv) 文件:

我想知道是否有一种方法可以将它分成几行并根据它们所尊重的变量将它们分别保存到数组中。我在这里尝试过,但它并没有真正做到我想要的。

try{
    Scanner reader = new Scanner(new File("PeriodicTableData.csv"));
    reader.nextLine();
    for(int i =0 ; reader.hasNext();i++){
        ele[i]= reader.nextLine();
        atomicnumber[i] = reader.nextLine();
        symbol[i] = reader.nextLine();
        bp[i] = reader.nextLine();
        mp[i] = reader.nextLine();
        density[i] = reader.nextLine();
    }
    reader.close();
}
catch(FileNotFoundException e){
    System.out.println("File not found!");
}

【问题讨论】:

    标签: java arrays excel csv file-io


    【解决方案1】:

    根据你在那里写的内容,你可能会考虑一次读一行:

    How to read a single word (or line) from a text file Java?

    然后使用 String.split() 根据逗号分割你的行,然后以类似于你之前的方式分配结果数组

    这是一个应该工作的例子:

        try{
          Scanner reader = new Scanner(new File("PeriodicTableData.csv"));
          reader.nextLine();
          for(i=0;reader.hasNext();i++) {
                String line = reader.nextLine();
                String[] values = line.split(",");
                //the above will take your input line and split 
                //values based on the passed character in quotes 
    
                ele[i]= values[0];
                atomicnumber[i] = values[1];
                symbol[i] = values[2];
                bp[i] = values[3];
                mp[i] = values[4];
                density[i] = values[5];
         }
        reader.close();
        }
        catch(FileNotFoundException e){
         System.out.println("File not found!");
        }
    

    【讨论】:

      【解决方案2】:

      首先我会说,如果您不知道行数,您可能希望将数组更改为 arrayList:s。然后 nextLine 给你一个新行而不是下一个单元格。所以我会做类似的事情

      ArrayList<String> ele = new ArrayList<>();
      ArrayList<String> atomicnumber = new ArrayList<>();
      ArrayList<String> symbol = new ArrayList<>();
      ArrayList<String> bp = new ArrayList<>();
      ArrayList<String> mp = new ArrayList<>();
      ArrayList<String> density = new ArrayList<>();
      try{
          Scanner reader = new Scanner(new File("PeriodicTableData.csv"));
          reader.nextLine();
          for(int i =0 ; reader.hasNext();i++){
              String line = reader.nextLine();
              ele.add( line.split(";")[0]);
              atomicnumber.add( line.split(";")[1]);
              //and so on
      
          }
          reader.close();
      }
      catch(FileNotFoundException e){
              System.out.println("File not found!");
      }
      

      请注意,但是我假设它是一个逗号分隔的文件...如果不是,您将需要一个单独的 excel 库。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多