/ / Копіювати Excel DropDown з WorkBook до нової книги - c #, excel, vsto, validation, gembox-spreadsheet

Копіювати Excel DropDown з WorkBook в нову книгу - c #, excel, vsto, validation, gembox-spreadsheet

Знову питання Excel. Мій клієнт надсилає мені файл Excel, який містить список випадаючих списків (Combobox), і мені потрібно скопіювати це Combobox або створити новий з інформацією всередині. Для Excel я вважаю, що dropdownlist був названий як перевірка даних (я вже отримав це, але нічого не можу з ним).

У мене Gembox dll і NativeExcel dll і не знайшли жодного рішення.

З GemBox я вже отримую це:

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

Дякую Андрій

Редагування: я припустив, що datavalitation пов'язано з dropdownlist!

Edit2: Головною проблемою є копіювання випадаючого списку з WorkBook на іншу!

Відповіді:

0 для відповіді № 1

Спочатку я хотів би сказати так, що у вашому випадку DataValidation пов'язаний з dropdownlist, оскільки це тип списку (див. Властивість dv.Type).

Також скопіювати цей список DataValidation вінший файл excel він буде залежати від джерела DataValidation, як згадується в коментарі shahkalpesh вони можуть бути жорсткими кодами або вони можуть походити з діапазону клітин. Ви можете перевірити джерело DataValidation, отримавши об'єкт dv.Formula1. Наприклад, якщо він твердо кодований, то Формула1 буде масивом цих елементів списку, і ви можете просто додати цю DataValidation в іншу ExcelFile:

wsnovo.DataValidations.Add(dv);

Але якщо ця DataValidation має діапазон клітин вФормула1, вам доведеться скопіювати цей діапазон комірок у новій ExcelFile або спробувати прочитати значення клітинок у цьому діапазоні клітинок та замінити формулу 1 на жорсткий список об'єктів.