我有一個JTable
,它使用TableCellRenderer
根據其值對一些單元格的背景着色。使用自定義TableCellRenderer導出JTable
我需要將該表格導出到具有相同單元格格式的excel文件中。 這裏是我目前在JTable
中看到的摘錄。
我一定要複製所有的Apache POI渲染背後的邏輯,以獲得相同的結果,或者是有更快的方法?
我有一個JTable
,它使用TableCellRenderer
根據其值對一些單元格的背景着色。使用自定義TableCellRenderer導出JTable
我需要將該表格導出到具有相同單元格格式的excel文件中。 這裏是我目前在JTable
中看到的摘錄。
我一定要複製所有的Apache POI渲染背後的邏輯,以獲得相同的結果,或者是有更快的方法?
您仍然需要創建工作簿,工作表,行和單元格。
遍歷每行的模型,並創建行和單元格(基於列數)。
根據您的表格數據設置單元格的值。
對於顏色:
它將幫助,如果你的JTable中的模式已經不單單是每個單元的值,而且其背面的底色。如果沒有,您可以通過給定行,列的值從JTable獲取背景顏色。 您需要爲每個單元格應用單元格樣式(單元格樣式可以獨立於單元格數目創建)並使用setFillBackgroundColor()
設置背景顏色。
「您需要爲每個單元格創建一個單元格樣式」:不,不要這樣做。單元格樣式在'Excel'中處於工作簿級別,而不是在單元級別。因此,在工作簿中爲每個**顏色**創建一個單元格樣式,然後根據需要將該單元格樣式設置爲儘可能多的單元格。 –
@AxelRichter感謝您的評論。我確定了我的答案。 – SomeDude
我會嘗試一下,然後我會接受答案:)給我幾天 –
這個問題有點太寬泛,無法在這裏回答。但是我會建議在'Excel'中考慮[Conditional Formatting](https://poi.apache.org/spreadsheet/quick-guide.html#Conditional+Formatting)。這在'JTable'中靠近單元格渲染器。 –
是的我知道,但不幸的是我需要在Java內部管理它... –
你點擊了鏈接[Conditional + Formatting](https://poi.apache.org/spreadsheet/quick-guide.html#Conditional+Formatting) ?幸運的是這是'apache poi',所以它**是**「在java內部管理」。 –