Java 验证列表 Openoffice

Java Validation List Openoffice

我正在尝试创建电子表格,我想将 ValidationTypeList”应用到特定单元格。

到目前为止我这样做了:

public static void setValidationProperty(XCell cell)
{
    XPropertySet xPropertySet = UnoRuntime.queryInterface(XPropertySet.class, cell);
    XPropertySet xPropSet1 = null;
    XPropertySet xPropSet2 = null;
    xPropSet1 = UnoRuntime.queryInterface(XPropertySet.class, xPropertySet.getPropertyValue("Validation"));
    xPropSet2 = UnoRuntime.queryInterface(XPropertySet.class, xPropSet1);
    xPropSet2.setPropertyValue("Type", ValidationType.LIST);
    xPropSet2.setPropertyValue("ShowList", (short) 1);
    xPropSet2.setPropertyValue("IgnoreBlankCells", (Boolean) true); 
    xPropertySet.setPropertyValue("Validation", xPropSet2); 
}

类型 LIST 的 OpenOffice 文档描述是:

只有来自指定列表的字符串才有效。

(http://www.openoffice.org/api/docs/common/ref/com/sun/star/sheet/ValidationType.html#LIST)

过去 3 天我一直在搜索,但我不知道必须在哪里创建此指定列表以及如何应用它。

如果有人能帮助我,我会更高兴。

提前致谢。

调用方法setFormula1 as shown in Basic at https://forum.openoffice.org/en/forum/viewtopic.php?f=20&t=25345.

XPropertySet xPropertySet = UnoRuntime.queryInterface(
    XPropertySet.class, cell);
XPropertySet xValidPropSet = UnoRuntime.queryInterface(
    XPropertySet.class, xPropertySet.getPropertyValue("Validation"));
xValidPropSet.setPropertyValue("Type", ValidationType.LIST);
xValidPropSet.setPropertyValue("ShowList", (short) 1);
xValidPropSet.setPropertyValue("IgnoreBlankCells", (Boolean) true); 
XSheetCondition xCondition = (XSheetCondition)
    UnoRuntime.queryInterface(XSheetCondition.class, xValidPropSet);
xCondition.setOperator(ConditionOperator.EQUAL);
xCondition.setFormula1("\"1\";\"2\";\"3\"");
xPropertySet.setPropertyValue("Validation", xValidPropSet); 

(注意:我没有编译或测试这段代码)。

另请查看显示 Java 代码的 DevGuide page