Logiss.ru

Ваша компьютерная помощь
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как конвертировать ODS в XLS

Чем конвертировать ODS в XLS?

Рекомендуем вам воспользоваться наиболее популярной программой — LibreOffice Calc , она работает на операционной системе Other и практически во всех случаях гарантирует качественный результат. Скачайте ее нажатием на название и установите — вы получите довольно простой и понятный инструмент, с помощью которого сможете легко сконвертировать свой файл в формат XLS.

Программы для конвертирования файлов ODS в XLS

Другие программы для формата ODS

Если вы вы столкнулись с проблемой открытия файла ODS, но знаете как и чем открыть файл XLS, вы можете воспользовать специализированным програмным обеспечением, которое позволит осуществить конвертацию из ODS в XLS.

Другие варианты решения проблемы

  • Попробуйте найти нужный файл в другом источнике в сети интернет. Возможно вам повезет найти более подходящую версию. Пример поиска в Google: «Файл filetype:ODS». Просто замените слово «файл» на нужное вам название;
  • Вполне возможно, что кто-то уже преобразовал нужный вам файл в XLS и опубликовал в интернете — попробуйте поискать его.
  • Попросите прислать вам исходный файл еще раз, возможно он был поврежден при передаче;
  • Видео форматы
  • Аудио форматы
  • Электронные книги
  • Текстовые форматы
  • Дисковые образы
  • Табличные данные
  • Растровые изображения
  • Векторные изображения
  • Резервное копирование
  • Raw
  • Сжатые файлы
  • Файлы данных
  • Базы
  • 3D Изображения
  • CAD файлы
  • Файлы разработчиков
  • Зашифрованные файлы
  • Исполняемые форматы
  • Шрифты
  • Файлы игр
  • GIS, карты
  • Другие расширения
  • Форматы макетов
  • Форматы плагинов
  • Файлы настроек
  • Системные файлы
  • Веб форматы

Конвертируем ODS в XML

Вот, наконец, я и добрался до последней статьи, завершающей цикл мануалов, посвященных конвертации различных офисных документов в xml-файлы. На этот раз я поделюсь опытом получения «чистого» xml-файла из таблиц, сохраненных в формате ODS.

Отвечая на вопрос «А зачем оно мне надо?» скажу, что ODS, кроме того, что является бесплатным форматом для электронных таблиц, разработанным индустриальным сообществом OASIS, еще и принят в качестве ГОСТовского стандарта в РФ. А это значит, что часть документов, опубликованных на порталах различных государственных и окологосударственных структур, которые, как им кажется, умеют в инновации, опубликованы именно в этом формате. Учитывая, что мануалов по причесыванию этой экзотики не так уж много (лично я не нашел, когда решал эту задачу), думаю, что кому-нибудь мой опыт поможет сэкономить время и нервные клетки.

Ссылки на другие статьи цикла

Итак, ODS представляет собой архив, в котором лежит набор .xml-файлов, хранящих не только текстовую информацию, но и различного рода метаданные, стили и прочие сведения, необходимые офисному приложению для нормальной работы с документом. Вообще, подробно о формате .ods можно почитать в спецификации. Забегая вперед, скажу, что доскональное изучение всех используемых тегов, их атрибутов, а также внутреннего устройства архива с расширением .ods может понадобиться только в том случае, если перед разработчиком будет поставлена задача вручную собрать документ по стандарту ODF. Честно говоря, если ваша компания не пишет очередную реализацию MS Office, то вероятность развития такого сценария немного очень сильно стремится к нулю.

Читайте так же:
Windows 10 зависает при установке на логотипе

Для примера предлагаю создать какой-нибудь файл с таблицами в любом удобном офисном приложении, заполнить тестовыми данными и сохранить его в формате ODS. Должно получиться что-то вроде того, что изображено на скрине ниже:

Чтобы добраться до XML с контентом, нужно сменить расширение файла с .ods на .zip и открыть его в любом архиваторе. Я использую 7-zip. Внутри архива хранятся следующие файлы:

Так как меня интересует содержание документа, то закапываю «Визин», надеваю очки +10 дптр и открываю content.xml. Строго говоря, остальные файлы в архиве не представляют интереса, так как в них содержатся исключительно метаданные, стили и иная информация, парсить которые никто, конечно же, не будет.

В результате, мы увидим следующее содержимое:

Несмотря на ломающий глаза текст, можно заметить, что первая часть документа содержит описание стилей, определяющих ширину колонок для отображения контента. Чтобы лучше разглядеть содержимое, настоятельно предлагаю самостоятельно проделать описанные манипуляции, а не ломать глазки о скрины. Сам же контент расположен ниже и заключен внутри тегов <office:body>

Предлагаю подробнее рассмотреть блок с контентом:

Как известно, типичный табличный документ (Excel или ODF) содержит в себе таблицы, или листы, образующие книгу (фактически один блок внутри тегов <office:spreadsheet> ). Содержимое листов заключено внутри тегов, атрибуты которых указывают на имя листа и применимый к нему стиль <table:table table_name=»Лист1″ table:style-name=»ta1″> .

Наименьшей самостоятельной единицей таблицы является ячейка. Типичные теги, в которые заключается содержимое ячейки, выглядит следующим образом <table:table-cell office:value-type=»string» table:style-name=»ce1″> . Таким образом, с помощью параметров можно указать тип данных, лежащих внутри ячейки, а также стиль. Сам же текстовый контент заключается внутри тегов <text:p> .

Пытливый читатель спросит насчет формул. На радость многих разработчиков, формулы хранятся как аргументы тега, но сам результат вычислений сохраняется в области, заключенной между тегами ячейки, в виде, вы не поверите, простого текста!

Ячейки объединяются в строки, которые выделяются тегами <table:table-row table:style-name=»ro1″> . Ниже, для иллюстрации, представлен кусочек xml со строкой из тестового файлика:

Информация к размышлению!

Обратите внимание на следующую строчку:

<table:table-cell table:number-columns-repeated=»16372″ table:style-name=»ce1″/>

Указанная строка соответствует последней заполненной ячейке в строчке. Как мы видим, разработчики формата ODS решили вопрос сохранения информации об остальных ячейках путем указания количества ячеек с одинаковым содержимым (в данном случае, содержащих ничего). Спасибо OASIS, подобным образом оформляются исключительно пустые повторяющиеся ячейки.

И еще один момент, про который нельзя забывать – собственное форматирование текста внутри ячейки, которое в файле content.xml выглядит следующим образом:

То есть при чтении content.xml необходимо учесть, что текст, имеющий отдельное оформление (полужирный, курсив или все что угодно, делающее оформление текста отличным от оформления по умолчанию) заключается в теги <text:span>, пробел при этом обозначается с помощью тега <text:s>.

Думаю, что читатель, который имел опыт работы с внутренней структурой любого другого ODF файла, легко узнал сходство используемых тегов и практически неотличимое от .odt-файлов внутреннее устройство xml-документа.

Читайте так же:
Простые способы, как улучшить громкость онлайн видео

Довольно теории: го код писать – я создал.

Работать с ODS-файлом лучше как с потоком, чтобы не плодить лишние сущности, да и источником ODS документа может быть что-нибудь, с чем предполагается взаимодействовать посредством REST-запросов.

Обратите внимание на строчку var content = Unzip(stream); в которой мы вызываем метод Unzip. Указанный метод отвечает за извлечение файла content.xml из архива и сохранение результата в виде байтового массива, который может быть преобразован в MemoryStream для дальнейшей обработки:

После того, как content.xml был извлечен мы можем произвести его обработку с помощью нативной библиотеки.

System.Xml – это очень удобная библиотека, однако .ods-файлы, как и любые другие офисные файлы, иногда могут достигать неприлично больших размеров, а использование System.Xml означает не просто загрузить офисный документ в память, но и создать кучу объектов с множеством методов и полей. Поэтому чтение из content.xml реализовано с помощью XmlReader . Обрабатывать content.xml я предлагаю путем создания новой xml, которую мы будем собирать поступательно, двигаясь внутри content.xml сверху вниз c помощью XmlWriter.

Для обеспечения работы XmlWriter необходимо создать объект XmlWriterSettings и указать параметр ConformanceLevel.Auto , чтобы обеспечить возможность корректного закрытия тегов XmlWriter .

Строчкой reader.ReadToFollowing(«office:spreadsheet»); «прокручиваем» теги с описанием стилей и метатеги, чтобы сразу добраться до смыслового контента.

Чтение данных из content.xml происходит с помощью метода reader.Read() , который двигает каретку от одного элемента XML к другому. Обработка каждого такого узла реализована в методе MethodSwitcher .

MethodSwitcher осуществляет выбор метода, описывающего дальнейшее поведение XmlWriter . Критерием выбора является тип текущего узла – reader.NodeType . Несмотря на то, что NodeType – это перечисление, содержащее около десятка именованных констант, для решения поставленной задачи достаточно будет трех: Element , EndElement и Text . Соответственно, в первом случае XmlWriter должен записать новый открывающийся тег, во втором случае должен быть закрыт последний незакрытый открытый тег, а в третьем записать некоторое строковое значение, помещенное между тегами.

Как видно, недостаточно просто сделать выбор на основании типа текущего элемента. Необходимо дополнительно обработать одиночные теги (например, пустая строка оформляется тегом </text:span> ), исключив их из конечного результата обработки, но в то же время нужно сохранить пробелы (напомню, пробельные символы обозначатся <text:s> ).

Второй If предотвращает преждевременное закрытие тегов. Преждевременное закрытие тега возможно в том случае, если каретка XmlReader доходит до закрывающего тега блока, который не должен быть записан. Для обработки такой ситуации мной был создан список с тегами, которые должны присутствовать в конечном документе:

Читайте так же:
Как очистить буфер обмена на компьютере с Windows 10

Вызов writer.Flush() необходим для того, чтобы осуществить запись данных в StringBuilder . Следует помнить, что вызывать указанный метод можно только после того, как будут сформированы все данные, которые должны быть записаны с помощь XmlWriter . Так Flush() не только записывает данные, но и очищает кэш текущего XmlWriter .

Метод TagWriter осуществляет непосредственно запись открывающихся тегов и представляет собой switch-case , в котором осуществляется выбор подходящего имени для тега в зависимости от текущего положения каретки XmlReader :

Рубрика «Вы не спрашивали, но мы отвечаем»

Думаю, что у вас есть вопрос насчет объединенных ячеек. В нашем тестовом файле таковые имеются и в content.xml они выглядят вот так:

Как видим, такие ячейки оформляются путем передачи в параметры атрибута тега количества колонок и строк, образующих объединенные ячейки. При этом указанный блок не дублируется внутри каждой ячейки, образующих данную группу, а лежит только внутри первой ячейки такой группы. Для нас это означает, что мы можем просто проигнорировать тот факт, что ячейки являются объединенными, и обработать их один раз как одну ячейку.

Описанным способом можно обработать практически любого размера файлы ODS, воспользовавшись исключительно средствами Microsoft, поставляемыми вместе с платформой .Net Core.

Ну, и по традиции, ознакомиться с уже написанным кодом, готовым к употреблению, можно в моем репозитории на GitHub.

В завершении гексалогии, посвященной подготовке чистого XML из текстовых и табличных файлов различных форматов, хочу сказать, что описанные подходы уже помогли минимизировать участие специалистов в обработке текстовых документов и облегчили процесс создания шаблонов и масок для парсинга текста из офисных документов. Надеюсь, что и для читателей мой опыт покажется интересным, а опубликованный код – полезным.

Конвертация ODS в XLS

Формат XLS принадлежит компании Microsoft и используется в ее табличном редактор Excel. Так как пакет Office, куда входит Excel, является самым популярным в мире, то и формат XLS тоже лучше использовать для сохранения таблиц. Однако не всего табличные редакторы сохраняют таблицы в нем. Главные конкуренты MS Office – Libre и OpenOffice, работают по умолчанию со своим форматом — ODS.

Как конвертировать ODS в XLS

Конвертирование можно произвести с помощью программ, которые уже упоминались – OpenOffice, LibreOffice и Excel. Все три поддерживают не только полноценную работу с обеими форматами, но и позволяют выполнять конвертацию из одного в другой.

LibreOffice

Достаточно популярный бесплатный офисный пакет. В него встроена программа Calc, являющаяся аналогом Excel. В нем поддерживается работа с указанными форматами.

  1. Выполните запуск приложения Calc и откройте с его помощью файл ODS. Скорее всего, файл с данным расширением будет по умолчанию открыт с помощью Calc.
  2. В верхнем меню кликните по кнопке «Файл». Из контекстного меню выберите пункт «Сохранить как» или воспользуйтесь сочетанием клавиш Ctrl+Shift+S.

OpenOffice

В этом офисном пакете тоже используется программа Calc, пускай и со своими особенностями, поэтому процесс очень похож на предыдущий вариант.

  1. Выполните запуск приложения Calc и откройте с его помощью файл ODS. Скорее всего, файл с данным расширением будет по умолчанию открыт с помощью Calc.
  2. В верхнем меню кликните по кнопке «Файл». Из контекстного меню выберите пункт «Сохранить как» или воспользуйтесь сочетанием клавиш Ctrl+Shift+S.

Excel

Excel по умолчанию работает с XLS и XLSX, но поддерживает открытие и редактирование ODS-файлов. Если у вас установлен пакет MS Office, то вы можете просто пересохранить ODS-таблицу в формате XLS.

  1. Откройте ODS в интерфейсе Excel. Это можно сделать простым переносом файла в рабочую область программы.
  2. Теперь нажмите на «Файл». В левой части выберите пункт «Сохранить как».

Как видите, в процессе конвертации ODS в XLS нет ничего сложного. С задачей может без проблем справится Excel, а если его нет, то можно использовать бесплатные аналоги.

Формат ODS – как открывать, редактировать и конвертировать файлы ODS

Файл с расширением .ods является, скорее всего, файлом OpenDocument Spreadsheet, который содержит информацию электронной таблицы, такую как текст, графики, рисунки, формулы и цифры, всё в пределах листа заполненного ячейками.

Файлы почтовых ящиков Outlook Express 5 также используют расширение файла ODS, но для хранения сообщений электронной почты, групп новостей и других параметров почты; они не имеют ничего общего с файлами электронных таблиц.

Как открыть файл ODS

Файлы электронных таблиц OpenDocument можно открывать с помощью бесплатной программы Calc, которая входит в состав пакета OpenOffice. В этом наборе есть некоторые другие приложения, такие как текстовый процессор под названием Writer и программа создания презентации под названием Impress.

Файлы формата ODS в файловом менеджере Windows

Вы получаете все эти программы OpenOffice при загрузке пакета, но вы можете выбрать, какие из них установить (файл ODS относится только к Calc).

LibreOffice (Calc) и Calligra Suite – два других пакета, похожих на OpenOffice, которые также могут открывать файлы ODS. Microsoft Excel тоже работает, но это не бесплатно.

Если вы работаете на Mac, некоторые из приведенных программ также помогут открыть файл ODS, но не забывайте про NeoOffice.

Пользователи Chrome могут установить расширение ODT, ODP, ODS Viewer для открытия онлайн-файлов формата ODS без необходимости их предварительной загрузки.

Независимо от того, какую операционную систему вы используете, вы можете загрузить файл ODS на Google Drive, чтобы сохранить его в Интернете и просмотреть его в своем браузере, где вы также можете конвертировать его в новый формат.

DocsPal и Zoho Sheet – два других бесплатных онлайн-просмотрщика ODS. В отличие от Google Диска, вам не нужно иметь учетную запись пользователя на этих сайтах для просмотра файла.

Хотя это не очень полезно, вы также можете открыть программу OpenDocument Spreadsheet с помощью утилиты распаковки файлов, такой как 7-Zip. Это не позволит вам просматривать электронную таблицу так же, как в Calc или Excel, но позволит извлечь любые встроенные изображения и открыть предварительный просмотр листа.

Вам необходимо установить Outlook Express, чтобы открывать файлы ODS, связанные с этой программой.

Как конвертировать файлы ODS

OpenOffice Calc может конвертировать файл ODS в XLS, PDF, CSV, OTS, HTML, XML и ряд других связанных форматов файлов. То же самое верно и для других бесплатных загрузочных просмотрщиков ODS, указанных выше.

Если вам нужно конвертировать ODS в XLSX или любой другой формат файла, поддерживаемого Excel, просто откройте файл в Excel и сохраните его как новый файл. Другой вариант – использовать бесплатный онлайн-конвертер Zamzar.

Google Диск – это ещё один способ конвертировать файл ODS онлайн. Загрузите файл, а затем щелкните его правой кнопкой мыши и выберите открыть с помощью Google Sheets. После этого используйте меню ФайлЗагрузить как в Google Sheets, чтобы сохранить его в виде файла XLSX, PDF, HTML, CSV или TSV.

Zoho Sheet и Zamzar – два других способа конвертировать файлы ODS в режиме онлайн. Zamzar уникален тем, что может конвертировать файл ODS в DOC для использования в Microsoft Word, а также в MDB и RTF.

Дополнительная информация о файлах ODS

Файлы ODS в формате OpenDocument Spreadsheet основаны на XML, очень похожи на файлы XLSX, используемые в программе электронных таблиц MS Excel. Это означает, что все данные хранятся в файле ODS, очень похожем на архив, с папками для таких вещей, как изображения и эскизы, и для других типов файлов, таких как XML и файл manifest.rdf.

Outlook Express 5 – единственная версия Outlook Express, которая использует файлы ODS. Другие версии почтового клиента используют файлы DBX для той же цели. Файлы ODS и DBX аналогичны файлам PST, используемым в Microsoft Outlook.

Всё ещё не можете открыть файл «ODS»?

Первое, что вы должны сделать, если вы не можете открыть свой файл «ODS» с помощью программ, упомянутых выше, это дважды проверить расширения файла. Некоторые форматы файлов используют расширение файла, которое может выглядеть как «.ODS», но это не означает, что форматы имеют какое-либо отношение друг к другу или что они могут открываться с помощью одних и тех же программ.

Одним из примеров являются файлы ODP. Хотя они являются файлами презентации OpenDocument, которые открываются с помощью программы OpenOffice, они не открываются с помощью Calc.

Другой пример – это файлы ODM, которые представляют собой ярлыки, связанные с приложением OverDrive, но они не имеют ничего общего с файлами электронных таблиц или файлами ODS.

Ссылка на основную публикацию
Adblock
detector