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()));
Il codice sopra riportato consente di generare un elenco a discesa in un file excel appena aperto, ma una volta salvato il foglio, il menu a discesa non sarà più disponibile. Le modifiche apportate dall'utente rimarranno lì, ma l'elenco a discesa scomparirà. Qualche idea?Il menu a discesa di Microsoft Excel è stato utilizzato dopo il salvataggio?
AGGIORNAMENTI:
Attualmente sospettare la ragione per cui il DropDownList è andato è dovuto al codice qui sotto
void WB_BeforeSave(bool SaveAsUI, ref bool Cancel)
{
workSheet.get_Range(START_CELL, string.Format(END_CELL, MAX_ROWS)).Validation.Delete();
}
Ho provato commentato il codice di cui sopra in modo che la convalida non sarebbe cancellato tuttavia, quando provo ad aprire manualmente il foglio Excel, Microsoft Excel rileva che la convalida è un contenuto illeggibile e la elimina automaticamente.
È necessario fornire più codice sorgente per aiutare le persone a identificare il problema. –
Si prega di fornire un [MCVE] –
anche condividere quale libreria excel si sta usando – Patel