/ / Copier Excel DropDown à partir de WorkBook dans un nouveau classeur - c #, excel, vsto, validation, feuille de calcul gembox

Copier Excel DropDown de WorkBook dans un nouveau classeur - c #, excel, vsto, validation, feuille de calcul gembox

Encore une question Excel. Mon client m'envoie un fichier Excel contenant une liste déroulante (Combobox). J'ai besoin de copier cette Combobox ou d'en créer une nouvelle avec les informations qu'elle contient. Pour Excel, je trouve que dropdownlist a été nommé validation de données (je l’ai déjà, mais je ne peux rien faire avec lui).

J'ai Gembox dll et NativeExcel dll et je n'ai trouvé aucune solution.

Avec GemBox, je reçois déjà ceci:

ExcelFile ef = ExcelFile.Load("Modelo_AA.xlsx");
ExcelWorksheet ws = ef.Worksheets[0];
ExcelFile efnovo = new ExcelFile();
ExcelWorksheet wsnovo = efnovo.Worksheets.Add("Hello");
DataValidationCollection dvc = ws.DataValidations;
DataValidation dv = dvc[0];
bool dd = dv.InCellDropdown; //here i get true

Merci Andrew

Edit: J'ai supposé que la datavalitation est associée à dropdownlist!

Edit2: Le problème principal est de copier une liste déroulante d'un classeur à un autre!

Réponses:

0 pour la réponse № 1

Tout d'abord, je voudrais dire que oui dans votre cas, DataValidation est associé à dropdownlist car il s'agit d'un type de liste (voir la propriété dv.Type).

Également pour copier cette liste DataValidation dansun autre fichier excel, il dépendra de la source DataValidation, comme indiqué dans les commentaires du shahkalpesh, ils peuvent être codés en dur ou provenir d’une plage de cellules. Vous pouvez vérifier la source de DataValidation en obtenant un objet dv.Formula1. Par exemple, si elle est codée en dur, la Formule1 sera un tableau de ces éléments de liste et vous pouvez simplement ajouter cette propriété DataValidation à un autre fichier Excel:

wsnovo.DataValidations.Add(dv);

Mais si cette DataValidation a une plage de cellules dansFormule1, vous devrez également copier cette plage de cellules dans un nouveau fichier Excel ou vous pouvez essayer de lire les valeurs des cellules de cette plage de cellules et remplacer une formule1 par une liste d'éléments codée en dur.