Создать выпадающий список с помощью ClosedXML
Я реализовал загрузку шаблона Excel в моем проекте. я использовал ClosedXML
,
У меня есть два листа Excel
Лист 1: На этом листе у меня есть столбец с именем "Тип", в котором я могу создать выпадающий список, и это третий столбец.
Лист 2: На этом листе у меня есть столбец с именем "Типы", и его диапазон адресов: "B2: B4", и это второй столбец.
Типы значений:
Работник
Ученик
учитель
Теперь я хочу создать выпадающий список.
Я создал выпадающий список в ClosedXML и код:
//Getting the range of sheet 2
var range = workbook.Worksheet(2).Range(workbook.Worksheet(2).Cell(2,2).Address,workbook.Worksheet(2).Cell(4,2).Address);
//Applying sheet 2's range with sheet 1
workbook.Worksheet(1).Column(3).SetDataValidation().List(range:range);
wb.Worksheet(1).Column(3).SetDataValidation().IgnoreBlanks = true;
wb.Worksheet(1).Column(3).SetDataValidation().InCellDropdown = true;
Я получил выпадающий символ в правой части ячейки, но я не получил значения в нем.
1 ответ
Вот как определение диапазона должно работать для вас. Поскольку диапазон ячеек на листе 2, которые будут действовать как элементы раскрывающегося списка на листе 1, уже известен, вы можете сделать это следующим образом:
//get a reference to worksheet 2 containing various type values - Employee, Student, Teacher:
var worksheet2 = workbook.Worksheet(2);
//Applying sheet 2's range validation in sheet 1 where drop down list is to be shown
workbook.Worksheet(1).Column(3).SetDataValidation().List(worksheet2.Range("B2:B4"), true);
Вы также можете скрыть свой лист проверки данных, чтобы пользователь вашей электронной таблицы не узнал или не мог манипулировать вторым листом, который содержит ваши основные данные, для выпадающих меню:
worksheet2.Hide();