#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 Мне нужно проверить то же самое.