2016-04-29 12 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())); 

Powyższy kod pomoże wygenerować listę rozwijaną w nowo otwartym pliku Excela, ale po zapisaniu arkusza użytkownika lista rozwijana zniknie. Zmiany wprowadzone przez użytkownika pozostaną, ale lista rozwijana zniknie. Dowolny pomysł?Lista rozwijana Microsoft Excel nie istnieje po zapisaniu?

aktualizacje:

Obecnie powód podejrzewać, że DropDownList upadł ze względu na poniższym kodzie

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

Próbowałem zakomentowanym powyższy kod tak, że nie byłoby walidacji usunięto jednak, gdy próbuję otworzyć arkusz excel ręcznie, program Microsoft Excel wykrywa, że ​​sprawdzanie poprawności jest nieczytelną treścią i automatycznie usuwa to.

+4

Powinieneś podać więcej kodu źródłowego, aby pomóc ludziom zidentyfikować problem. –

+3

Podaj także [MCVE] –

+0

również udział, który jest doskonałą biblioteką, której używasz. – Patel

Odpowiedz

0

Spróbuj zapisać program Excel w formacie .xlsx, niektóre zachowania nie zostaną uwzględnione, jeśli nie zostanie wybrany prawidłowy format pliku.

+0

Nie działa ani w' .xlsx' ani '.xls' type –

+0

to działa poprawnie, kiedy ręcznie je zapisujesz? – tharif

+0

Tak, jeśli ręcznie utworzę listę rozwijaną metodą "sprawdzania poprawności" i zapiszę ją ręcznie, lista rozwijana będzie zachowywana i dostępna. –

Powiązane problemy