2017-05-26 44 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

我会尝试一下,然后我会接受答案:)给我几天 –