【发布时间】:2016-02-26 10:54:13
【问题描述】:
我正在使用 OpenXml 创建 Excel 文件并导出表格数据。一种情况是我希望一列具有预定义值的下拉列表,例如 true 和 false。我关注this问题并编写代码如下
DataValidation dataValidation = new DataValidation
{
Type = DataValidationValues.List,
AllowBlank = true,
SequenceOfReferences = new ListValue<StringValue>() { InnerText = "B1" },
//Formula1 = new Formula1("'SheetName'!$A$1:$A$3") // this was used in mentioned question
Formula1 = new Formula1("True,False") // I need predefined values.
};
DataValidations dvs = worksheet.GetFirstChild<DataValidations>(); //worksheet type => Worksheet
if (dvs != null)
{
dvs.Count = dvs.Count + 1;
dvs.Append(dataValidation);
}
else
{
DataValidations newDVs = new DataValidations();
newDVs.Append(dataValidation);
newDVs.Count = 1;
worksheet.Append(newDVs);
}
如果我将它与带有单元格值范围的 SheetName 一起使用,它工作正常,但如果我添加字符串,它会抛出错误“找到不可读的内容”并删除数据验证节点。
如何在公式本身中为列表下拉验证添加值。它为手动添加(通过在 excel 应用程序中编辑)创建的 XML 列表值是 <formula1>"One,Two"</formula1>(观察到的 xml 用于 excel 文件)
【问题讨论】: