2017-05-26 47 views
0

我有一個JTable,它使用TableCellRenderer根據其值對一些單元格的背景着色。使用自定義TableCellRenderer導出JTable

我需要將該表格導出到具有相同單元格格式的excel文件中。 這裏是我目前在JTable中看到的摘錄。

enter image description here

我一定要複製所有的Apache POI渲染背後的邏輯,以獲得相同的結果,或者是有更快的方法?

+0

這個問題有點太寬泛,無法在這裏回答。但是我會建議在'Excel'中考慮[Conditional Formatting](https://poi.apache.org/spreadsheet/quick-guide.html#Conditional+Formatting)。這在'JTable'中靠近單元格渲染器。 –

+0

是的我知道,但不幸的是我需要在Java內部管理它... –

+1

你點擊了鏈接[Conditional + Formatting](https://poi.apache.org/spreadsheet/quick-guide.html#Conditional+Formatting) ?幸運的是這是'apache poi',所以它**是**「在java內部管理」。 –

回答

2

您仍然需要創建工作簿,工作表,行和單元格。

遍歷每行的模型,並創建行和單元格(基於列數)。

根據您的表格數據設置單元格的值。

對於顏色:

它將幫助,如果你的JTable中的模式已經不單單是每個單元的值,而且其背面的底色。如果沒有,您可以通過給定行,列的值從JTable獲取背景顏色。 您需要爲每個單元格應用單元格樣式(單元格樣式可以獨立於單元格數目創建)並使用setFillBackgroundColor()設置背景顏色。

+2

「您需要爲每個單元格創建一個單元格樣式」:不,不要這樣做。單元格樣式在'Excel'中處於工作簿級別,而不是在單元級別。因此,在工作簿中爲每個**顏色**創建一個單元格樣式,然後根據需要將該單元格樣式設置爲儘可能多的單元格。 –

+0

@AxelRichter感謝您的評論。我確定了我的答案。 – SomeDude

+0

我會嘗試一下,然後我會接受答案:)給我幾天 –