2013-12-09 98 views
0

我正在使用XSSF創建Excel。Apache POI使用X,Y,Z軸線數據創建Excel

這個excel將包含前3行中的數據(想象這是x軸)。 我也有數據填充在左邊兩列(想象這是Y軸)。

現在,我必須在表格中添加一個標誌,指示y軸值(想象中的z軸)與x &之間的匹配。

E.g.如果我在x軸上有值:x1(單元格:D1),x2,x3,x4等等在Y軸上:Y1,Y2,Y3(單元格:12C))等等。

如果x1 == Y3,我用普通單元格(D12)標記'X'。

我在Linkedhashmap的所有這些數據。 X軸數據在一個linkedhashmap中,y軸在另一箇中,我也有信息,這些x值等於另一個linkedhashamp中的哪個y值。所以我必須循環這些hashmaps並創建一個excel工作表。

我的問題:我有這個匹配信息hashmap與列(x軸)數據作爲鍵和行數據作爲值。所以,我必須明智地遍歷工作表列。 (X1→Y3,Y100,Y123,X2→Y2,Y79,Y500)。

這是好的方法還是我應該反轉hasmap中的鍵和值,考慮性能?

我在x軸(保持x-asixs的原因)上有限制(範圍:100-5000)值,而我有100萬行/值(在Y軸上)。

打開您可能有任何其他建議,請建議。

非常感謝您的幫助。

P.S.我有使用excel的經驗,也有與POI一起工作的經驗,我知道基礎知識,而且之前我創建了excel表格,但數據有限,並且總是行排列而不像這個多維。

回答

0

我想我會用

cell.setCellFormula(formula_str); 

有一個公式一樣

=if(a1=b3, "", "MISMATCH") 

或然而它應該工作。這樣你就可以讓Excel完成這項工作,而不必在Java代碼中編寫hashmaps和各種令人費解的東西。也就是說,當用戶更新Excel時,它會更新它們。如果您的計算在Excel中更改數據時未更新,用戶將不會喜歡它。

cell.setCellFormula("IF(A1=B3, \"\", \"MISMATCH\")"); 

要創建forumulas的列或行,你只需要一個循環的數量從A1,B3到任何你遍歷並添加公式的單元格變化。

相關問題