Считывание контрольного значения флажка с листа Excel с помощью C#

#c# #openxml

Вопрос:

Я работаю над чтением листа Excel с использованием C#. Здесь я застреваю при чтении элемента управления флажком из excel. Нам нужно прочитать, установлен ли флажок или снят.

Мы используем office open xml для чтения excel.

 OfficeOpenXml.ExcelWorksheet worksheet=Package.workbook.worksheets["abc"];

var  draw=worksheet.Drawings.SingleOrDefault(a=>a.name ==  "Check Box 45");
 

используя draw.text я получаю текст флажка, но я не могу прочитать, установлен он или снят.

Спасибо,

Спасибо, Ашиш

Комментарии:

1. Попробуйте выполнить приведение ExcelControlCheckBox (или использовать dynamic ). Затем прочитайте Checked свойство.

2. Привет @BenVoigt не могли бы вы, пожалуйста, поделиться, как установить флажок?

3. «приведение» — это функция C#, например ((ExcelControlCheckBox)draw)

Ответ №1:

Установите флажок Связать с какой-либо другой ячейкой. и сохраните значение true/false в этой ячейке на основе проверки/снятия флажка.

Здесь я связал флажок с ячейкой[z:1]. когда пользователь установит флажок, я добавлю значение в ячейке[z:1] как true. если пользователь снимет флажок, я добавлю false. после этого я прочитаю значение из ячейки[z:1], как показано ниже.

 ExcelWorksheet loExcelSheet = excel.Workbook.Worksheets.SingleOrDefault(a => a.Name == "SheetName");
                    ExcelDrawing cbox1 = loExcelSheet.Drawings.SingleOrDefault(a => a.Name == "CBox1");
                   var lsRes = loExcelSheet.Cells["Z1"].Value.ToString();
 

Комментарии:

1. Установите флажок Связать с какой-либо другой ячейкой. — Это решение не будет работать в моем случае, так как конечный пользователь собирается загрузить файл Excel с установленным или снятым флажком.

2. Установите флажок Связать с какой — либо другой ячейкой-это решение не подходит для моего проекта. Поскольку эти отличия создаются из другого приложения/другой команды, поэтому мы не контролируем excel. Пользователь загружает эти файлы в наше приложение, где эти файлы должны автоматически считываться и вставляться в базу данных. Нам нужно прочитать значение флажка, не меняя шаблон.

3. Привет @sujit-патель, Как его можно привести с помощью open xml или любого другого решения для этого?

4. @AshishShinde Мне нужно проверить то же самое.