2016-05-16 44 views
0

所以我現在有這段代碼經過一個while循環並從「結果集對象」(JDBC東西)中讀取下列字段。通過數組將行寫入Excel

要讀取和填充的字段:eNumber,eName。

while (rs.next()) { 

     ArrayList<String> eRow = new ArrayList<String>(); 

     String eNumber = rs.getString("ENTRYNUMBER"); 
     String eventName = rs.getString("EVENTNAME"); 
     //String 
     System.out.println("entryNumber: " + eNumber + "\t" + "eventName: " +eName); 

     eRow.add(eNumber); 
     eRow.add(eName); 
} 

我的問題 - 我怎麼能寫兩個變量在同一行的兩個不同的細胞,然後在while循環重複?然後導出爲ex​​cel。我想我需要一個數組,但是Im在那之後卡住了。

例:

LoopWriteExample

回答

0

將這項工作?

eRow.add(eNumber+","+eName); 
+0

需要寫eRow到Excel單元格。你能幫忙嗎? – Dasman

0

您將需要兩個添加到同一指數,可能使用一個分隔符:

eRow.add(eNumber + '#' + eName); // just chose '#' as unlikely to be used 

然後,你可以使用eRow.toArray()方法轉陣列成一列,最後使用文本分列再次分離數據。

或者你可以遍歷該ArrayList(預警,我沒用如Java所以這可能不是實際運行,但應該給你的我的意思的想法):

// ... your code 

String[] splitVals; 

for (int i = 1; i <= eRow.Count; i++){ 
    splitVals = eRow[i].Split('#'); 
    setCellValue(splitVals[0], i, 1); 
    setCellValue(splitVals[1], i, 2); 
} 

// ... some more code ... 

public void setCellValue(String val, int row, int col) { 
    if (!this.isLoaded) { 
     return; 
    } 
    Dispatch cellRef = Dispatch.invoke(activeSheet, "Cells", Dispatch.Get, new Object[]{++row, ++col}, new int[1]).toDispatch(); 
    Dispatch.put(cellRef, "Value", val); 
} 
0

你可能需要按照以下方式重新編寫代碼。

ArrayList<HashMap<String, String>> eRow = new ArrayList<HashMap<String, String>>(); 
while (rs.next()) { 
     String eNumber = rs.getString("ENTRYNUMBER"); 
     String eName = rs.getString("EVENTNAME"); 
     //String 
     System.out.println("entryNumber: " + eNumber + "\t" + "eventName: " +eName); 

     HashMap<String, String> row = new HashMap<String, String>(); 
     row.put(eNumber, eName); 
     eRow.add(row); 
} 

編輯1: 你可以通過你eRow環和值寫入的東西CVS文件像下面

FileWriter fw = new FileWriter("file.csv"); 
for (HashMap<String, String> map : eRow) 
{ 
    for (Entry<String, String> entry : map.entrySet()) 
    { 
     fw.write(entry.getKey() + "," + entry.getValue() + " \n"); 
+0

會試試這個。如何將eRow寫入Excel單元格? – Dasman

+0

你可以將它添加到你的答案與正確的格式?評論沒有空格。 – Dasman