2012-03-26 27 views
5

私はシートの値を読み込み、それらの値をJavaの配列に格納したいと考えています。excelファイルから値を読み取り、配列に格納する方法は?

私はコードをExcelシートを読む準備ができていますが、配列にそれらの値を格納するようにカスタマイズすることはできません。ここで

は、Excelシートを読み込むための私のコードです:

package com.core.testscripts; 

import java.io.File; 
import java.io.IOException; 

import jxl.Cell; 
import jxl.Sheet; 
import jxl.Workbook; 
import jxl.read.biff.BiffException; 

public class NewExcel 
{ 

    private String inputFile; 

    public void setInputFile(String inputFile) 
    { 
     this.inputFile = inputFile; 
    } 

    public void read() throws IOException 
    { 
     File inputWorkbook = new File(inputFile); 
     Workbook w; 
     try 
     { 
      w = Workbook.getWorkbook(inputWorkbook); 
      // Get the first sheet 
      Sheet sheet = w.getSheet(0); 
      // Loop over first 10 column and lines 

      for (int j = 0; j < sheet.getColumns(); j++) 
      { 
       for (int i = 0; i < sheet.getRows(); i++) 
       { 
        Cell cell = sheet.getCell(j, i); 
        System.out.println(cell.getContents()); 
       } 
      } 
     } 
     catch (BiffException e) 
     { 
      e.printStackTrace(); 
     } 
    } 

    public static void main(String[] args) throws IOException 
    { 
     NewExcel test = new NewExcel(); 
     test.setInputFile("D:/hellohowareyou.xls"); 
     test.read(); 
    } 

} 
+1

はどのようにあなたが読みたいですか?単一の配列内のすべての行のすべてのセル?または、2次元配列の行ごとにすべてのセル?? – Nik

答えて

0

あなたは本当に配列が、あなたはそれのためにストレージを割り当てるときに、配列にしたいどのように多くの要素を知っている必要がありますしようとしている場合。実行時に行うことができます - コンパイル時に認識する必要はありませんが、配列を使用する前に実行する必要があります。宣言セクションで

どこか:

String[] dataArray = null; 

して、どこかのコードで

dataArray = new String[numberOfElements]; 

あなたは同じ原理上に2つ(またはそれ以上)の次元配列を作ることができます。その後、numberOfElementsより小さいインデックスで配列の任意の要素に文字列を割り当てることができます。

+0

私はQAであり、このコードをテスト目的に使用したいと考えています。 5つの値を持つExcelシートがあります。 そして私は別のクラスでGoogle検索のSeleniumコマンドを持っています:selenium.type( "css =#gbqfq"、 "Hello");このコマンドでは、これらの値をExcelシートから使用して、このコマンドを「Hello」ではなくそれらの値を使用して実行したいと考えています。 –

2
import java.io.File; 
import java.io.IOException; 

import jxl.Cell; 
import jxl.Sheet; 
import jxl.Workbook; 
import jxl.read.biff.BiffException; 

public class NewExcel 
{ 

    private String inputFile; 
    String[][] data = null; 
    public void setInputFile(String inputFile) 
    { 
     this.inputFile = inputFile; 
    } 

    public String[][] read() throws IOException 
    { 
     File inputWorkbook = new File(inputFile); 
     Workbook w; 

     try 
     { 
      w = Workbook.getWorkbook(inputWorkbook); 
      // Get the first sheet 


      Sheet sheet = w.getSheet(0); 
      data = new String[sheet.getColumns()][sheet.getRows()]; 
      // Loop over first 10 column and lines 
     //  System.out.println(sheet.getColumns() + " " +sheet.getRows()); 
      for (int j = 0; j <sheet.getColumns(); j++) 
      { 
       for (int i = 0; i < sheet.getRows(); i++) 
       { 
        Cell cell = sheet.getCell(j, i); 
        data[j][i] = cell.getContents(); 
        // System.out.println(cell.getContents()); 
       } 
      } 

     /* for (int j = 0; j < data.length; j++) 
      { 
       for (int i = 0; i <data[j].length; i++) 
       { 

        System.out.println(data[j][i]); 
       } 
      } */ 

     } 
     catch (BiffException e) 
     { 
      e.printStackTrace(); 
     } 
    return data; 
    } 


} 
0
package Utilities; 

import java.io.File; 
import java.io.FileInputStream; 
import java.io.IOException; 
import java.util.ArrayList; 
import java.util.HashMap; 
import java.util.Iterator; 
import java.util.List; 
import java.util.Map; 

import org.apache.poi.ss.usermodel.Cell; 
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.xssf.usermodel.XSSFWorkbook; 

public class ExcellReading { 

    // public Workbook workbook= null; 
    // public Sheet firstSheet= null; 

    public String INPUT_XLS = "/ExcelManipulation/TestExecution.xlsx"; 

    public ExcellReading() { 
    } 

    public ExcellReading(String filepath) { 
     INPUT_XLS = filepath; 
    } 

    public Map<Integer, List<String>> ReadExcel() throws IOException { 

     FileInputStream inputStream = new FileInputStream(new File("TestExecution.xlsx")); 

     Map<Integer, List<String>> data = new HashMap<Integer, List<String>>(); 

     Workbook workbook = new XSSFWorkbook(inputStream); 

     Sheet firstSheet = workbook.getSheetAt(5); 

     Iterator<Row> iterator = firstSheet.iterator(); 

     // Test test=new Test(); 
     int rowCnt = 0; 

     while (iterator.hasNext()) { 
      Row nextRow = iterator.next(); 

      Iterator<Cell> cellIterator = nextRow.cellIterator(); 
      List<String> obj = new ArrayList<String>(); 
      while (cellIterator.hasNext()) { 
       Cell cell = cellIterator.next(); 

       String cellobj = cell.getStringCellValue(); 

       if ("".equals(cell.getStringCellValue())) { 
        obj.add("Missing"); 

       } else if (cellobj.equals(null)) { 
        obj.add(""); 

       } else { 
        obj.add(cell.getStringCellValue()); 
       } 

      } 

      data.put(rowCnt, obj); 
      rowCnt++; 

     } 
     return data; 
    } 

} 
関連する問題