使用Apache POI(Java)在XLSX中创建复选框

问题描述 投票:0回答:1

我需要在XSSFSheet中创建一个Excel复选框,但是在Java Apache POI库(4.0.1)中,我也没有发现明显的类/方法,也没有任何示例。有什么建议吗?

excel checkbox apache-poi xssf apache-poi-4
1个回答
1
投票

Microsoft Excel中可能有两种控制类型。有旧版表单控件和ActiveX控件。创建遗留表单控件是可能的。 ActiveX控制将复杂得多。

旧版表单控件存储在每张VML图纸中。 Apache poi已经具有XSSFVMLDrawing类,因为单元格注释也部分存储在VML绘图中。但是apache poi中的类经常不完整,并且设置了方法的可访问性,因此无法轻松扩展该类。似乎apache poi开发人员经常明确希望阻止其类的扩展。

对于旧Checkbox控件,我们需要一个复选框形状类型,然后在此VML绘图中需要复选框形状。

以下代码创建两个旧的复选框。

方法XSSFVMLDrawing getVMLDrawing(XSSFSheet sheet)从图纸中获取VML图纸,或者如果还不存在,则创建一个新的图纸。

方法void addCheckboxShapetype(XSSFVMLDrawing drawing)向图形添加新的复选框形状类型。

[C0方法将给具有给定位置和标签的图形添加一个新的复选框形状,并具有一个void addCheckbox(XSSFVMLDrawing drawing, int col1, int dx1, int row1, int dy1, int col2, int dx2, int row2, int dy2, String label, boolean checked)元素,该元素在选中时包含1或在未选中时包含0。

完整示例:

Checked
© www.soinside.com 2019 - 2024. All rights reserved.