с# aspose.cells видимость ячеек из файла excel

Рейтинг: 0Ответов: 1Опубликовано: 28.06.2023

Прошу подсказать aspose.cells, как получить свойство ячеек из excel, скрыты они или нет? Так как при передачи на страницу таблица начинает ехать из за скрытых ячеек.

Перебрал все свойства, но ничего найти не могу.

Перебрал все методы ячейки и строки, нигде не могу найти данное свойство.

Ответы

▲ 0

Microsoft Office Excel 365.

У объекта Range есть свойство Hidden. Range используется для всего: для отдельных ячеек, групп ячеек, целых строк и столбцов (колонок). Для доступа к строкам и столбцам у Worksheet есть свойства Columns и Rows.

Напрямую свойство Hidden нельзя применить к Range, а можно только к колонкам или столбцам. Для всего листа это просто "Columns(адрес).Hidden" или "Rows(адрес).Hidden", а для отдельной ячейки нужно схитрить: "[A12].Columns(1).Hidden".

Есть ещё объединённые ячейки, с ними посложнее. Напрямую понять, какая из них отображается, нельзя. Во-первых, есть свойство MergeCell, которое, хотя и описано, как типа Variant, имеет логическое значение и говорит о том, объединена ли ячейка с другими или нет. Есть свойство MergeArea, которое возвращает диапазон объединённых ячеек для каждой из этих ячеек. Ну а понять, отображается ячейка или нет, поможет анализ содержимого. У неотображаемых ячеек Value пустое, ему можно присвоить значение (без выдачи ошибки), но потом Value всё равно будет пустое. Отображаемая ячейка работает как обычно.

На счёт "aspose.cells" не знаю, а через Excel Interop всё прекрасно решается.

UPD Посмотрел в aspose, там есть "Column.IsHidden", а у Range есть EntireColumn (строки соотвественно). К этому нужно добираться через "Worksheet.Cells". Объектная модель немного отличается, так как в файле сохраняется информация только об инициализированных ячейках.