Excel, LibreOffice, ClosedXML

Понадобилось тут мне из-под C# с использованием ClosedXML прочитать xlsx файл. Что же могло пойти не так?

Прикол в том, что если файл "с нуля" создан в LibreOffice, то ClosedXml при попытке чтения такого файла может влегкую вывалить ошибку типа

1
System.InvalidOperationException: "Sequence contains no matching element"

И с этим ничего не сделаешь (( В то же время абсолютно такой же файл, созданный в Excel, читается и обрабатывается "на ура".

Конечно, есть варианты: создать в LibreOffice, открыть потом в Excel, пересохранить, скрестить пальцы и надеяться, что ClosedXml такого бастарда сожрет.

Или вообще переходить на OpenXml, и работать уже с ним.

Что самое забавное: если файл изначально был создан в Excel, то дальнейшее его редактирование в LibreOffice не рушит структуру и позволяет вполне адекватно работать с файлом через ClosedXml.

Проблема в том, что лично у меня задачка не настолько глобальная, чтоб ковырять OpenXml. Так что (опять же лично для себя!) я принял волюнтаристкое решение xlsx-файлы создавать только в Excel.

Как ситуация будет в OpenOffice / Р7 Office / прочие перелицовки - без понятия, а экспериментировать времени и желания нет.

P.S. Доктор (вот же неугомонный!) выяснил, что пересохранения файла от LibreOffice через стандартный Excel уже позволит файл читать механизмами ClosedXml.

Размещено в .NET, Новости · Метки: , , ,



Поделитесь своим мнением


Я не робот.