使用自定义TableCellRenderer导出JTable
我有一个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内部管理”。 –