2013-12-12 26 views
0

問題描述:我想在Excel工作表中加載圖像像素數據。一個用於滿足我的要求的java excel api?

我曾嘗試:使用Apache POI寫脫穎而出的數據,但我發現有在Apache的POI一定的侷限性(如下詳述) 我已經知道一些解決方法,這是在部分繁瑣的的程序員,我真的不願意爲這樣一個微不足道的任務做這件事。

詳情:

我一直在使用Apache POI相當長的一段時間,我所遇到的一些限制:

  • 整個文件是在內存中一次,所以不能使用直接用於大文件。

(特定於HSSF):

  • 不超過255個列
  • 不超過4000種的單元格樣式
  • 不能使用自定義顏色直接。

我的要求是逐像素地讀取一個圖像(比如1024x764),並在excel表格的行和列中寫入像素值,每個不同的像素值的樣式都是不同的。

我所面對的問題是:

  • 出存儲器異常的,而寫因爲許多行/列和樣式
  • 寫入邏輯重用樣式會減慢到excel工作表,整個程序
  • 即使我重用的風格,做一下行數量龐大什麼/列

我已經知道有變通辦法這些問題:

  • 重用風格
  • 的內存使用效率
  • 寫作邏輯

,但我不打算花太多的痛苦一份工作那樣簡單,而且由於這些都不是直接的Excel的限制(至少不是.xlsx),我正在尋找一個可以爲我做的圖書館。

有人可以請建議另一個庫可以做到這一點,或者你可以建議一些更容易解決這些問題的解決方法?

+0

您可能需要考慮對此進行重新說明(可能是要求對所述問題採取有效的方式?),因爲對圖書館推薦的請求可能會被視爲與主題無關。 – pnuts

+0

我編輯了這個問題,並在頂部添加了相關信息。 我不相信這個查詢**吸引褒獎的答案和垃圾郵件**因爲我有一個有效的,具體的要求集,我正在尋找答案,並尋找另一個可能沒有太多負擔的程序員。 – gaurav5430

回答

2

有人可以提出一個好的圖書館要做到這一點,否則我會從Java變成CSHARP

總之,沒了 - 的POI庫,以我的經驗,最好的可用爲了工作。他們並不完美,但我不知道更好的替代方案。你可能想嘗試checking trunk out,看看你的任何問題是否已經解決 - 完全可能,這是一個相對活躍的項目。

我建議看着唯一的其他東西是OpenOffice API,但要安裝注意,需要OO(或您的應用程序分發。)

坦率地說,雖然,POI的實力是它的跨平臺性 - 這是一個沒有本地組件的純Java實現。如果你不關心這件事,那麼可以使用C#並使用本地辦公室API,這看起來肯定是合乎邏輯的方法?對我來說,你已經沒有這樣做了,這似乎很奇怪。

+0

我沒有這樣做,因爲我正在尋找一個Java解決方案。 c#必須是我最後的手段。我希望在java中有更簡單的方法來完成這個簡單的任務(將圖像像素數據複製到excel) – gaurav5430

0

JExcelApi的 http://jexcelapi.sourceforge.net/

它工作在聲明模式,如Adobe生命週期ËJReport的:你創建一個模板文件XLS andin你把參考豆每一個細胞。

調用引擎,結束你有一個XLS文件。

對不起,我的工作很多年了,我不記得細節,但在網站上有文檔。

+1

完全正確,但OP明確需要XLSX支持,這是一項功能這在jExcelAPI – fvu

+0

中非常缺失我也非常確定jExcelAPI(當我至少使用它時)仍然將整個文件一次保存在內存中? – berry120