Sheet.get_Range(
"D2",
string.Format("D{0}", MAX_ROWS)).Validation
.Add(E.XlDVType.xlValidateList,
Type.Missing,
E.XlFormatConditionOperator.xlBetween,
string.Join(",", CountryCollection.Select(x=>x.CountryName.Replace(",",")).ToArray()));
Run Code Online (Sandbox Code Playgroud)
上面的代码将有助于在新打开的excel文件上生成下拉列表,但是一旦用户保存工作表,下拉列表就会消失.用户所做的更改将保留在那里,但下拉列表将消失.任何的想法?
更新:
目前怀疑下拉列表已经消失的原因是由于以下代码
void WB_BeforeSave(bool SaveAsUI, ref bool Cancel)
{
workSheet.get_Range(START_CELL, string.Format(END_CELL, MAX_ROWS)).Validation.Delete();
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试注释掉上面的代码,以便不会删除验证,但是当我尝试手动打开Excel工作表时,Microsoft Excel会检测到验证是不可读的内容并自动删除它.
| 归档时间: |
|
| 查看次数: |
1230 次 |
| 最近记录: |