保存后Microsoft Excel下拉列表消失了吗?

Posted

技术标签:

【中文标题】保存后Microsoft Excel下拉列表消失了吗?【英文标题】:Microsoft Excel dropdownlist gone after save? 【发布时间】:2016-08-24 05:41:06 【问题描述】:
Sheet.get_Range(
"D2", 
string.Format("D0", MAX_ROWS)).Validation
    .Add(E.XlDVType.xlValidateList, 
         Type.Missing, 
         E.XlFormatConditionOperator.xlBetween, 
         string.Join(",", CountryCollection.Select(x=>x.CountryName.Replace(",",")).ToArray()));

上面的代码将有助于在新打开的 excel 文件上生成一个下拉列表,但是一旦用户保存工作表,下拉列表就会消失。用户所做的更改将保留在那里,但下拉列表将消失。有什么想法吗?

更新:

目前怀疑下拉列表消失的原因是由于以下代码

void WB_BeforeSave(bool SaveAsUI, ref bool Cancel)

    workSheet.get_Range(START_CELL, string.Format(END_CELL, MAX_ROWS)).Validation.Delete();

我已经尝试注释掉上面的代码,这样验证就不会被删除,但是,当我尝试手动打开 Excel 工作表时,Microsoft Excel 检测到验证是不可读的内容并自动将其删除。

【问题讨论】:

你应该提供更多的源代码来帮助人们识别问题。 请提供minimal reproducible example 也分享你正在使用的excel库 @Patel 我正在使用Microsoft.Office.Interop.Excel 【参考方案1】:

尝试以.xlsx格式保存excel,如果没有选择正确的文件格式,某些行为将无法生效。

【讨论】:

是的,如果我通过validation 方法手动创建下拉列表并手动保存,下拉列表将被维护和访问。

以上是关于保存后Microsoft Excel下拉列表消失了吗?的主要内容,如果未能解决你的问题,请参考以下文章

通过Microsoft Excel中的vlookup制作列表?

excel怎样添加的选项卡中含有下拉列表

excel表格保存后边框没有了的解决方法(2)

EXCEL中下拉列表的条件设置问题

pb中 如何把两个表中的内容导出到一个电子表格 如何把一个字段作为下拉列表框的item

在 Wordpress 中保存小部件后 TinyMCE 消失