Comments 18
Сконвертировали через внешний вызов и работайте себе дальше.
Бесспорно проще. Но,
- во-первых, при таком подходе теряется возможность работы с потоком — нам необходимо будет записывать данные в файл, а потом этот файл конвертировать сторонним приложением.
- во-вторых, разве плохо, если в сети появится информация о том, как получить из xls xlsx использую только C#, тем более, что на форумах периодически такие вопросы всплывают, но, к сожалению, остаются без ответа?
Т.е. проблема именно в чтении xls. А она решается простой конвертацией, а дальше работай как удобно.
Отличается тем, что, если данные приходят в потоке (например, через get-запрос), то нам придётся записать xls файл на диск, сконцентрировать в другой файл xlsx с помощью другого языка, а потом продолжить работать на C# с файлом xlsx.
В предложенном мной варианте можно произвести конвертацию без создания каких-либо файлов и подключения дополнительных сервисов.
Считайте, что это просто один из вариантов решения проблемы, который мне, в результате, подошёл больше.
libreoffice --headless --convert-to xlsx --outdir ./dest file.xls
Установка libreoffice — это решение из разряда установки Interop, которое имеет аналогичные недостатки:
- установка дополнительного, далеко не самого легкого, ПО
- требуется время на запуск
- прожорливость по памяти
А так, такое решение вполне имеет право на существование, однако, в таком случае, логичнее использовать решения на других языках, решающих данную проблему: это как минимум будет менее ресурсоемким решением.
Все, она появилась: к своему удивлению столкнулся с проблемой исчезновения части текста из статьи при публикации. Почему так происходит, честно говоря, не особо пока разобрался: решал проблему путем добавления/удаления пустых абзацев. Подозреваю, что причина проблемы кроется в использовании Markdown и особенностях его интерпретации
Я вижу уже вторую или третью вашу статью на тему — Как сконвертировать ХХХ в XML. Но никак не могу понять цель этой конвертации. Что вы с этим XML собираетесь делать?
Конкретно в моем случае, есть пользователи программного продукта компании. Вот этим пользователям, для удобства работы с указанным ПО, необходимо иметь возможность получить xml-документ из обрабатываемого текстового документа. При этом, содержимое должно быть заключенным в соответствующие теги таблиц, абзацев и списков.
Вот и все. Не исключено, что кто-то еще сталкивался и столкнется с аналогичной задачей.
Совсем недавно на проекте также проводил исследование на тему работы с excel из dotnet. Правда задача стояла немного другого плана — проводить вычисления через excel файлы.
Что на счет библиотек EPPlus и Spire.net?
Конвертация xls в xlsx и xml на C#