Как создать ячейку в файле Excel с выпадающим множественным выбором, используя Open Xml? - PullRequest
2 голосов
/ 01 апреля 2020

Поскольку я работаю над функциональностью, чтобы написать файл Excel, используя DocumentFormat.Open XML Пакет NuGet.

Я могу создать раскрывающийся список для указанной ячейки c в Excel, но мое требование заключается в том, чтобы указанная ячейка c позволяла пользователю выбирать несколько элементов из раскрывающегося списка. .

Используя приведенный ниже код, я могу создать раскрывающийся список для ячейки, но эта ячейка не допускает множественный выбор.

            DataValidation dataValidation = new DataValidation
            {
                Type = DataValidationValues.List,
                AllowBlank = true,
                SequenceOfReferences = new ListValue<StringValue>() { InnerText = "B1" },
                Formula1 = new Formula1("'Cricket Team'!$A$1:$A$3")

            };

            DataValidations dataValidations = worksheet1.GetFirstChild<DataValidations>();
            if (dataValidations != null)
            {
                dataValidations.Count = dataValidations.Count + 1;
                dataValidations.Append(dataValidation);
            }
            else
            {
                DataValidations newdataValidations = new DataValidations();
                newdataValidations.Append(dataValidation);
                newdataValidations.Count = 1;
                worksheet1.Append(newdataValidations);
            }

Пример вывода этого кода:

enter image description here

Мое требование: пользователь может выбрать несколько элементов из выпадающего списка .

1 Ответ

0 голосов
/ 02 апреля 2020

Мое требование заключается в том, что указанная ячейка c должна позволять пользователю выбирать несколько элементов из раскрывающегося списка.

Вы можете попытаться установить и применить фильтр к диапазону через Автофильтр , как показано ниже.

Worksheet sheet1 = new Worksheet();
sheet1.Append(sheetData);

// set the AutoFilter
// and set the range based on your requirement and data items
AutoFilter autoFilterForName = new AutoFilter(){ Reference = "B1:B" + 3 }; 

sheet1.Append(autoFilterForName);

Результат теста

enter image description here

...