2017-03-17 65 views
0

所以我有這個變量PV1從Excel文件存儲第一行。但我想要一個將整行存儲在向量中的變量。如何將Excel工作表轉換爲使用Jxl的矢量

我使用System.out.println()只是爲了看看它是否需要良好的列。

String PV1; 
for(int col = 0;col < columns;col++) 
{ 
    for(int row = 1;row < rows;row++) 
    { 
     PV1 = sheet.getCell(1, row).getContents(); 
     System.out.println(Double.parseDouble(PV1)); 
    } 
} 

我正在使用jxl訪問Excel文件。

任何幫助將不勝感激!

Edit: This is the table我需要在PV1中存儲所有行。

+2

這個向量是一個'java.util.Vector'嗎?如果是這樣,請考慮使用java.util.List代替。 –

+0

在我的答案我嵌套兩個向量創建矩陣。在你的問題中不清楚你需要多少維度。 – freedev

+0

我有43478行和6列。 – Catalin

回答

0

如果我理解正確的話,你需要的是應該保持第一行中的所有列向量。

如果是這樣的話,你可以這樣做:

Vector<Double> firstRow = new Vector<>(); 
if(rows > 0){ 
    for(int col = 0;col < columns;col++){ 
     String pv = sheet.getCell(1, col).getContents(); 
     firstRow.add(Double.parseDouble(pv)); 
    } 
} 

你或許應該考慮使用的List而不是Vector

從您的評論看來,你似乎想要檢索所有行中的特定列。你可以這樣做:

int pv1ColumnIndex = 1; 
List<Double> pv1Columns = new ArrayList<>(); 
for(int row = 1;row < rows;row++){// row = 1 to skip the header 
    String pv1 = sheet.getCell(pv1ColumnIndex, row).getContents(); 
    pv1Columns.add(Double.parseDouble(pv1)); 
} 
+0

不是。我需要存儲矢量/列表中的所有行。我上傳了一張照片,可以說明情況。所以在PV1中,我想要列PV1所包含的所有行。 – Catalin

+0

@AntonescuCatalin我編輯了我的答案。我認爲第二個例子會做你需要做的事情。我不確定getCell()方法的參數是什麼。如果它是'getCell(rowIndex,columnIndex)''你必須用'row'替換'pv1ColumnIndex',反之亦然。連續成功。 – Titus

0

這將幫助你

String PV1; 
    Object[] data = Object[columns] 
    for(int col = 0;col < columns;col++) 
    { 
     for(int row = 1;row < rows;row++) 
     { 
     PV1 = sheet.getCell(1, row).getContents(); 
     data[col] = PV1; 
     System.out.println(Double.parseDouble(PV1)); 
     } 
    } 
+0

實際上'Object [columns]'應該是'Object [columns *(rows - 1)]',爲什麼要使用'Object'數組? – Titus

+0

是的,你是對的。如果你想將數據存儲爲字符串,那麼字符串數組就可以。但是我可以看到,您正在將字符串轉換爲雙精度型,所以我認爲您將在代碼中的某個位置轉換數據。 – Keaz