2016-04-29 3 views
6
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())); 

Вышеприведенный код поможет сгенерировать выпадающий список в недавно открытом файле excel, но как только пользователь сохранит лист, выпадающий список исчезнет. Изменения, внесенные пользователем, останутся там, но выпадающий список исчезнет. Есть идеи?Выпадающий список Microsoft Excel ушел после сохранения?

ОБНОВЛЕНИЕ:

В настоящее время подозревая причину, по которой DropDownList уже ушло из-за кода ниже

void WB_BeforeSave(bool SaveAsUI, ref bool Cancel) 
{ 
    workSheet.get_Range(START_CELL, string.Format(END_CELL, MAX_ROWS)).Validation.Delete(); 
} 

Я попытался закомментированным код выше, так что проверка не будет однако, когда я пытаюсь открыть лист Excel вручную, Microsoft Excel обнаруживает, что проверка является нечитаемым содержимым и автоматически удаляет его.

+4

Вы должны предоставить больше исходного кода, чтобы помочь людям идентифицировать проблему. –

+3

Просьба предоставить [MCVE] –

+0

также поделиться, какую библиотеку excel вы используете – Patel

ответ

0

Попробуйте сохранить excel в формате .xlsx, некоторые действия не вступят в силу, если правильный формат файла не выбран.

+0

Он не работает ни в' .xlsx', ни в '.xls' типа –

+0

это нормально работает, когда вы вручную сохраните их? – tharif

+0

Да, если я создаю раскрывающийся список вручную методом 'validation' и сохраняю их вручную, выпадающий список будет поддерживаться и доступен. –

Смежные вопросы