2014-02-21 77 views
0

我目前使用Apache POI自動將數據從xls文件傳輸到xlsm文件後的一些過程。我有很強的執行時間限制,XSSFCellStyle上的setter非常耗時。XSSFCell風格似乎很慢

事實上,我有數千個單元的文件傳輸和boder方法(SetBorder & SetBorder顏色)需要3毫秒到5毫秒執行每個1細胞。在我的情況下,1300萬人需要30秒才能執行。

在JProfiler的圖表中,我們可以看到花在這些方法上的最多時間處於狀態「等待」。

這是否正常?

非常感謝!

+0

不正常。我們需要看你的代碼。但是,一般來說,當我使用POI時,我試圖儘可能地模仿風格(OOP)。設置具有完整單元格樣式的類,而不是通過決策結構來確定它。 – woodlumhoodlum

+0

單元格樣式處於工作簿級別,應該在共享相同樣式的單元格之間重新使用。確保您只爲每種獨特風格的單元格創建一種單元格樣式,而不是每個單元格中的一種! – Gagravarr

+0

謝謝,我需要重新考慮我的算法 – Wodric

回答

0

在例如org.apache.poi.xssf.model.StylesTable.putStyle(XSSFCellStyle)他們試圖找到兩次xfs兩次。它使用ArrayList

越多的單元格,這個操作越慢。

如果可以,儘量避免很多日期

相關問題