Как поменять формат файла docx на odt
1. ГЕНЕРАЦИЯ ОТЧЕТА НА ОСНОВЕ БЛАНКА ODT, пример бланка - файл test_lists_odt.odt
2. Правильный вывод многострочного текста в ODS и ODT-отчетах.
3. Конвертирование полученного отчета в другие форматы с помощью Open Office и jodconverter
Реализовано в рамках одного проекта - формирование отчетов на основе бланков Open Office и Microsoft Office
Почему ODT, а не DOCX?
Во первых, я разобрался с ODS , а разница между ODT и ODS форматами НЕВЕЛИКА.
Во вторых - я не разобрался с XLSX , основным конкурентом ODS (ну, это я так думаю).
В бланках ODT продолжена традиция описания действий в примечаниях (т.е. точно так же, как и в ODS и XML).
В нужном месте вставляете примечание, в самом примечании - описываете необходимый код.
Код может быть так же в двух синтаксисах:
синтаксис 1 - если примечание НЕ НАЧИНАЕТСЯ с &, предполагается, что дальнейшее - код foxpro
return test_.saldo
или
return dtoc(date())
или "сложный" код (это пример, здесь можно написать что угодно )
local ii
ii=test_.saldo
return ii
синтаксис 2 - начинаясь с & - предполагается, что дальнейшее - это поле, функция или переменная
пример:
&test_.saldo
или
&dtoc(date())
Особенности бланков формата ODT
1. Отличие (от ODS и XML) написания формулы расчета суммы по колонке.
Сумма по колонке считается не по фактически нарисованной таблице в файле, а по данным источника - курсора или таблицы (в отличие от формата ODS или XML - где данные собираются прямо ИЗ ЯЧЕЕК).
Главная причина, почему это сделано - отсутствие подитогов в ODT.
Поэтому, для расчета суммы нужно записать, например:
return rowssum('test_.saldo')
или
&rowssum('test_.saldo')
т.е. указав поле, по которому сумма будет рассчитываться.
ОБРАТИТЕ ВНИМАНИЕ! 'test_.saldo' взято в скобки!
Использование функций rowsrecno() - № строки в группе/отчете и rowscount() - количество строк в группе/отчете - осталось без изменений.
2. Одна служебная колонка вместо трех.
Колонка может выполнять функцию ОБЫЧНОЙ колонки, хотя это НЕ РЕКОМЕНДУЕТСЯ - результат в этом случае НЕПРЕДСКАЗУЕМ.
3. Код FoxPro должен возвращать (оператором return - в 1 синтаксисе) значение, которое будет вставлено в генерируемый файл.
4. В бланках ODT отсутствуют управляющие операторы thisdata, thisformula, thiscomment и функция add_report() - которые использовались в ODS и XML соответственно, для указания значения ячейки, указания формулы, указания примечания и генерации нового листа книги (возможно, в дальнейшем сделаю генерацию зависимых отчетов).
Как задать значение в тексте ODT или в ячейке таблицы? Смотрите чуть ниже.
5. Значение, которое будет получено кодом FoxPro или функцией/полем/переменной может быть различных типов.
Но, при генерации в отчет ВСЕ РАВНО будет вставлено текстовое значение.
Вместо Numeric - STRTRAN(LTRIM(STR(значение,15,2)),".",",") - т.е. с 2 разрядами после запятой
Вместо Date - DTOC(значение)
Вместо DateTime - TTOC(значение)
Вместо Character - текст БЕЗ ИЗМЕНЕНИЙ
Иные типы - пустая строка - ""
Поэтому, если Вас не устраивает автоматичесое приведение к тексту - можете заранее это сделать сами.
например, для возврата ЦЕЛОГО значения ВМЕСТО
&test_.saldo
или
return test_.saldo
ВВЕДИТЕ
&str(test_.saldo)
или
return str(test_.saldo)
Рекомендации по бланкам ODT:
1. Рекомендуется перед вставкой примечания внести [[]], а уже само примечание разместить между [[ и ]]
Зачем?
Написав [[]] вы определяете стиль текста (например, цвет, размер, шрифт и т.д.), который будет сгенерен примечанием (иначе - результат может быть НЕПРЕДСКАЗУЕМ).
Ну и, кроме того, это дополнительная (но не обязательная!) метка для сигнализации - "тут есть некоторое действие!"
Кстати, символы [[ и ]] будут из конечного текста удалены.
Общие рекомендации по бланкам ODT, ODS и XML.
1. Если в процессе генерации foxpro выдает ошибку (например, неверно была написана функция в бланке) - рекомендуется после исправления ПЕРЕД запуском генератора выполнить CLOSE ALL (закрытие файлов).
2. После того, как бланк ODS или XML подготовлен, рекомендуется перед сохранением скрыть первые три служебные колонки (зачем они Вам нужны в готовом файле?).
Для ODT - уменьшить ширину колонки, если эта колонка чисто служебная (кликаете мышкой по границе столбца, далее в меню столбец - ширина - и задаете ширину 0 для нужного столбца).
3. Полученные значения (в ячейках таблиц ODS, XML, ODT и в тексте ODT) из полей, функций или переменных НЕ ДОЛЖНО содержать следующих символов (таков стандарт XML):
" & < > '
и эти символы должны быть соответственно заменены на:
" & < > '
Использование "запрещенных" символов может привести к ошибке открытия сформированного файла.
Для автоматической замены можно воспользоваться специальной встроеннной функцией:
symbol2xml()
Почему этого не сделать прямо в программе генерации?
Дело в том, что в большинстве случаев, такой замены НЕ ТРЕБУЕТСЯ. Так зачем тратить на это время?
Использование symbol2xml в первом синтаксисе:
return symbol2xml(test_.notes)
или во втором
&symbol2xml(test_.notes)
Особенности конвертации файлов Open Office в другие форматы прямо из генератора отчетов.
1. Возможна конвертация ODS->XLS и ODT->DOC (о других форматах - ниже).
Но, как Вы понимаете, различие форматов ведет к некоторому различию исходных и сконвертированных файлов.
Например, ODS с картинками показывается в XLS-файле, но почему-то картинки из ODT в DOC отображаются не всегда.
Поэтому, если Вы пользуетесь Microsoft Office и не хотите потерять что-либо при конвертировании - поставьте соответствующий сервис-пак (для чтения ODS и ODT), и Вам будет счастье (заметьте, нюансы все равно остаются).
ВАЖНО! Конвертация возможна ТОЛЬКО при установленном Open Office и распакованном пакете jodconverter в каталоге jodconverter (по умолчанию уже есть в дистрибутиве, в ином случае - скачайте новую версию)!
Создание бланков для XLSX и DOCX ПОКА не планируется, так как:
а) форматы xlsx и docx слишком сложны для логического понимания КАК ИЗ ТОГО, ЧТО ЕСТЬ ПОЛУЧИТЬ НОВЫЙ ДОКУМЕНТ, т.е. не прибегая напрямую к Excel или Word. Подозреваю, что это сделано Microsoft-ом специально (файлы отлично считываются и анализируются - ЭТО ДЛЯ МЕНЯ НЕ ПРОБЛЕМА, в проге есть возможность для загрузки xlsx-файлов - при раскомментировании соответствующих строк кода)
б) нет интереса со стороны пользователей , причем со стороны пользователей ЗНАЮЩИХ форматы xlsx и docx (насчет картинок никто ничего не ответил).
Как получить конвертированный файл?
Нужно ПРОСТО указать в конечном файле ИНОЕ (от расширения бланка) расширение.
Повторюсь - результат конвертации может Вас не устроить.
НО обычно для того, что-бы проверить качество конвертирования достаточно сконвертировать файл один раз (обязательно обратите внимание на то, как отображаются картинки в конвертированном файле или вообще откажитесь от них!).
Самое "правильное" расширение для сконвертированного файла, если в дальнейшем не планируется его редактирование - это PDF. Пока не наблюдалось проблем с разным отображением оригинала и конвертированной копией
jodconverter - классная вещь, хотя бы потому, что мне не придется лезть в xlsx и docx (хотя чего там, уже почти влез. )
Но так как jodconverter требует Open Office (установите Open Office - обязательно пригодится!), это может несколько напрячь некоторых пользователей (скачать, установить. )
Поэтому, если кто подскажет бесплатную программу конвертирования хотя бы ODS->XLS(X), ODT->DOC(X) БЕЗ УСТАНОВКИ ДОПОЛНИТЕЛЬНЫХ приложений - буду безмерно рад.
Как работать с jodconverter
1. Open Office должен быть установлен в системе.
2. Необходимо внести путь к Open Office
Откройте или создайте файл soffice_folder.txt и внесите туда путь к soffice.exe
4. Распакуйте в каталог jodconverter только каталоги docs,lib,src и все файлы которые находятся рядом с этими каталогами.
Т.е. в подпапке jodconverter должны находиться КАК МИНИМУМ каталоги docs,lib,src и файл document-formats.xml!
5. В подпапке lib переименуйте jodconverter-cli-N.N.N.jar в jodconverter-cli.jar , т.е. без указания версии (N.N.N - номер текущей версии).
Разработка бланка ODT.
1. Открываете/создаете документ в формате ODT, в котором нужно разместить каркас документа.
2. В нужных местах - вставляете [[]] , а между [[ и ]] - примечание. Если примечание начинается с & - предполагается что дальше - поле, функция или переменная. В ином случае - предполагается, что дальше идет код FoxPro, который должен вернуть значение оператором return (Что, впрочем необязательно).
Например, можно разместить дату генерации отчета:
&dtoc(date())
или
return dtoc(date())
3. Если необходимо в документе разместить таблицу - рисуете ее с учетом того, что колонок будет на единицу больше (служебная колонка).
После "рисования" в служебной колонке определяете тип строки.
Например,
Thistype='reportheader' - для заголовка отчета или группы.
Thistype='detail' - для обычной строки отчета.
Thistype='reportfooter' - для строки подвала отчета или группы.
Далее, нужно определить параметры группировки.
В этой же колонке, например
Thisgroup='test_.t2'
или
Thisgroup='test_.t1'
Если Thisgroup='' или не задано - считается, что строка относится не к группе, а к отчету (заголовку или подвалу отчета).
4. После задания служебной информации нужно проставить, что Вы хотите видеть в каждой ячейке строки.
Если это обычный текст - так его и вводите.
Для размещения значения поля таблицы нужно вставить
[[]] с текстом примечания между [[ и ]] (что не обязательно, но очень рекомендуется)
В тексте примечания ячеки строки detail вписываете, например:
Return test_.saldo
(1 синтаксис)
для показа значения поля test_.saldo
или
&test_.saldo
(2 синтаксис)
Значение может быть довольно сложным, например
Return alltrim(test_.fam)+' '+alltrim(test_.im)+' '+alltrim(test_.ot)
или
&test_.t1+test_.addr
В строке reportheader или reportfooter можно разместить специальную функцию для подсчета суммы по полю таблицы, например по test_.saldo
&rowssum('test_.saldo')
или
return rowssum('test_.saldo')
Обратите внимание на кавычки - они строго необходимы, так как программа будет собирать итоги именно по этому полю, а не по значениям в генерируемой таблице (отличие от ODS и XML)!
В ячейке первой колонки первой строки для таблицы нужно определить по какому селекту/курсору эта таблица будет строиться.
В примечании пишете
Procedure Init
Select * from test into cursor test_ order by t1,t2,user_id
т.е. точно так же, как при работе с ODS/XML
В одном документе может быть несколько (решать Вам) таблиц с разных ресурсов, главное - задать в первой ячейке первой служебной колонке procedure init с кодом инициализации!
5. Уменьшите ширину служебных колонок всех таблиц до минимального уровня - мышкой (перетаскиванием) это сделать не получится, зато можно сделать по другому - кликаете мышкой по границе, выбираете столбец - ширина - и задаете ширину 0 для первой колонки.
6. Сохраняете документ, запускаете генератор, выбираете сохраненный шаблон ODT и получаете готовый документ. Все.
**********************************************************************
Замеченные "странности"
ODS
При формировании ODS с рисунком в строке, высота которой динамически меняется в зависимости от содержимого, размер рисунка по вертикали так же меняется.
Т.е. если Вы размещаете рисунок в таблице - высота строки ДОЛЖНА БЫТЬ фиксированной.
Конвертировать DOCX в ODT онлайн
Используйте форматы Word и OpenOffice по максимуму. Мы предоставляем бесплатный Конверте DOCX в ODT. Наше онлайн-приложение создает ODT из DOCX с высокой скоростью и профессиональным качеством. Алгоритм преобразования позволяет конвертировать DOCX во многие популярные файловые форматы.
Лучший бесплатный конвертер DOCX в ODT
Конвертировать DOCX в ODT высочайшего качества в любом браузере. Вам не нужно устанавливать какое-либо дополнительное программное обеспечение, такое как Microsoft Word, OpenOffice или Acrobat Reader. Попробуйте прямо сейчас конвертировать DOCX в ODT онлайн. Вы можете использовать его совершенно бесплатно.
Сохранить DOCX как ODT с высокой скоростью
Программная платформа Aspose Words
Онлайн-приложение Conversion разработано на базе программной платформы Aspose Words. Наша компания разрабатывает современные высокопроизводительные решения для обработки документов для различных ОС и языков программирования:
Просто воспользуйтесь нашим онлайн Конвертером DOCX в ODT. Это быстро, просто и совершенно бесплатно.
Вы можете конвертировать одновременно до 10 DOCX файлов.
Размер каждого DOCX не должен превышать 10 MB.
Пользовательские файлы хранятся на серверах Aspose 24 часа. По истечении этого времени ваши файлы будут автоматически удалены.
Компания Aspose уделяет особое внимание вопросам информационной безопасности. Вы можете быть уверены, что ваши файлы хранятся на безопасных серверах и надежно защищены от несанкционированного доступа.
Конвертирование объёмных DOCX файлов в ODT формат, особенно с большим количеством мелких деталей, иногда может занять некоторое время, так как оно связано с перекодированием и повторным сжатием данных.
Попробуйте наш бесплатный аддон Aspose Mail Merge для отправки настраиваемых массовых писем с помощью Gmail.
При работе с файлами текстовых форматов, пользователи сталкиваются с задачами, когда необходимо открыть или конвертировать файл ODT в Word. В зависимости от ситуации, может понадобится открыть ODT в Word для просмотра документа, или преобразовать ODT в Word для дальнейшего использования в текстовых форматах DOC или DOCX.
В состав открытого формата документов OpenDocument Format (ODF) входят расширения для различных типов файлов: ODT (OpenDocument Text, текстовый формат файла документа) ODP (формат файла презентации) ODS (формат файла электронной таблицы) ODG (формат файла изображения) и другие. OpenDocument используется в качестве альтернативы форматам, разработанным для офисного пакета Microsoft Office.
Наиболее широко используются текстовые документы в формате ODT, создаваемые в бесплатных программных пакетах LibreOffice, OpenOffice и других. Эти офисные пакеты бесплатны, в отличие от платного продукта MS Office.
Несмотря на наличие бесплатных альтернатив, офисные программы от Майкрософт, пока не сдают свои позиции в мире. Программу Microsoft Word используют намного чаще, чем аналогичный текстовый процессор Writer, входящий в состав бесплатных офисных пакетов.
Поэтому пользователям часто бывает необходимо открыть файл ODT в Word, если в процессе работы попался файл с таким расширением, а на компьютере нет специализированной программы для создания или открытия файлов данного типа. В некоторых ситуациях, нужно сохранить текстовый документ ODT именно в формате документа Word.
В различных программах можно конвертировать ODT в Word или воспользоваться удаленным сервисом в интернете для того, чтобы конвертировать файл ODT в Word онлайн.
Проблему открытия или сохранения файла в другом формате, можно решить несколькими способами:
- Открыть ODT в Word на компьютере.
- Открыть ODT в Word онлайн.
- Перевести формат ODT в Word на ПК.
- Конвертировать ODT в Word онлайн.
В одном случае, придется использовать приложение, установленное на компьютере, в другом случае, нам понадобится помощь сервиса в интернете (онлайн конвертер ODT в Word).
Имейте в виду, что при преобразовании между текстовыми форматами может измениться форматирование в документе.Как открыть файл ODT в программе Word
Файл с расширением ODT можно открыть непосредственно в программе Word. Для версий Word 2003 и ниже нужно установить один из плагинов, добавляющих поддержку формата ODT в Ворд, например, Sun ODF Plugin for MS Office или ODF Translator Add-in for Office.
Выполните следующие действия:
- Запустите текстовый редактор MS Word.
- Откройте меню «Файл», в открывшемся меню нажмите на «Открыть». В Word 2019 или в Word 2016 дополнительно нужно нажать на кнопку «Обзор».
- В окне Открытие документа», в списке, расположенным напротив поля «Имя файла», выберите «Текст OpenDocument».
- Выделите файл ODT на компьютере, нажмите на кнопку «Открыть».
- Файл в формате ODT откроется в текстовом процессоре Word.
Для продолжения редактирования открытого файла, отключите режим защищенного просмотра в Word.
Как сохранить файл ODT в DOC (DOCX) при помощи Word
После просмотра или редактирования текстового файла ODT, пользователь имеет возможности для преобразования файла OpenDocument Text в один из форматов Word: «*.doc» или «*.docx». Это можно сделать несколькими способами.
- Войдите в меню «Файл», нажмите на «Экспорт».
- Нажмите на кнопку «Изменить тип файла».
- Справа в колонке откроются типы файлов документов. Выберите «Документ Word» или «Документ Word 97-2003», в зависимости от того, какой формат вам больше подходит.
- Нажмите на кнопку «Сохранить как», расположенную под колонкой для выбора типов документов.
- В окне «Сохранить как» выберите место для хранения файла, нажмите на кнопку «Сохранить».
- В меню «Файл» нажмите на «Сохранить как».
- Нажмите на кнопку «Обзор».
- В окне «Сохранить как» в поле «Тип файла» выберите «Документ Word» или «Документ Word 93-2003».
Как конвертировать файл ODT в Word с помощью LibreOffice
В офисном пакете LibreOffice, в приложении Writer создаются ODT файлы. Программа поддерживает сохранение своих файлов в различные текстовые форматы. Поэтому можно сразу из Writer перевести файл ODT в DOCX или DOC.
Пройдите следующие шаги:
- В окне «LibreOffice Writer» нажмите на кнопку «Сохранить».
- В контекстном меню выберите пункт «Сохранить как…».
- В окне «Сохранение» выберите место сохранения файла, а в поле «Тип файла» выберите «Word 2007-365» (формат docx) или «Word 97-2003» (формат doc).
- Нажмите на кнопку «Сохранить».
Как сохранить ODT в Word при помощи OpenOffice
В офисном пакете OpenOffice можно сохранить файл формата ODT в формате DOC. Полученный файл можно легко сохранить в формате DOCX в программе Word.
Проделайте следующие действия:
- В окне «OpenOffice Writer» войдите в меню «Файл».
- В выпадающем сменю нажмите на «Сохранить как».
- В окне «Сохранение», в поле «Тип файла» выберите «Microsoft Word 97/2000/XP», а затем нажмите на кнопку «Сохранить».
Перевод ODT в Word на Google Docs
Этот способ подойдет в ситуации, когда на компьютере нет программы Word или бесплатных офисных аналогов. Вы сможете в Документах Google открыть файл для просмотра, редактирования, а затем сохранения в нужном формате.
Необходимо выполнить следующий порядок действий:
Текстовый документ в формате Ворд сохранится на компьютере.
Как конвертировать ODT в Word онлайн
Для преобразования файла между форматами необходим конвертер ODT в Word. Для решения этой задачи хорошо подходит онлайн сервис. Конвертеры онлайн используют следующий порядок работы, разделенный на три этапа:
- Пользователь загружает исходный файл на сервис, а затем выбирает нужный формат.
- На удаленном сайте происходит преобразование файла из одного формата в другой.
- Пользователь загружает готовый новый файл на свой компьютер.
Мы воспользуемся услугами онлайн сервиса Zamzar для преобразования файла ODF в формат Word:
- Перейдите на страницу сервиса Zamzar .
- Нажмите на кнопку «Добавить файлы…», а затем загрузите файл в формате ODT на сервис.
- Выберите для создаваемого файла новый формат «docx» или «doc».
- Нажмите на кнопку «Конвертировать».
- После завершения обработки, нажмите на кнопку «Download» для скачивания файла на ПК.
Выводы статьи
Некоторые пользователи сталкиваются с необходимостью открытия файлов ODT в Word, или сохранения ODT в форматы DOCX или DOC. Решить проблему с открытием файлов ODT, а затем с сохранением их в формат Word помогут программы, установленные на компьютере и онлайн сервисы. С помощью онлайн сервисов можно конвертировать файл в формате ODT в форматы Word.
Наверное, именно поэтому у многих пользователей возникает необходимость перевести ODT в Ворд, и в этой статье мы расскажем о том, как это сделать. Забегая вперед скажем, что в этом процессе нет ничего сложного, более того, решить данную задачу можно двумя разными способами. Но, обо всем по порядку.
Использование специального плагина
Так как аудитория платного Офиса от Майкрософт, как и его бесплатных аналогов, довольно велика, проблема совместимости форматов известна не только рядовым пользователям, но и разработчикам.
Выбор и установка плагина-конвертера
Установив ODF Translator Add-in for Office, можно перейти к открытию ODT-документа в Ворде с целью его дальнейшего преобразования в DOC или DOCX.
Конвертирование файла
После того, как мы с вами успешно установили плагин-конвертер, в Ворде появится возможность открытия файлов в формате ODT.
Таким образом мы с вами смогли перевести ODT-файл в документ Ворд с помощью специального плагина-конвертера. Это лишь один из возможных методов, ниже мы рассмотрим еще один.
Использование онлайн-конвертера
Описанный выше метод крайне хорош в случаях, когда вам часто приходится сталкиваться с документами формата ODT. Если же необходимость преобразовать его в Word у вас возникла единожды или подобное требуется очень редко, совсем не обязательно скачивать и устанавливать на свой компьютер или ноутбук сторонний софт.
Решить данную задачу помогут онлайн-конвертеры, коих на просторах интернета существует довольно много. Мы предлагаем вам на выбор три ресурса, возможности каждого из которых по сути идентичны, так что просто выберите тот, который вам больше понравится.
Рассмотрим все тонкости преобразования ODT в Word онлайн на примере ресурса ConvertStandard.
1. Перейдите по ссылке, указанной выше, и загрузите на сайте ODT-файл.
Примечание: Конвертировать в DOCX данный ресурс не умеет, но это не проблема, так как DOC-файл можно преобразовать в более новый DOCX и в самом Ворде. Делается это точно таким же образом, как мы с вами пересохраняли открытый в программе ODT-документ.
Теперь преобразованный в DOC ODT-файл можно открыть в Word и отредактировать, предварительно отключив режим защищенного просмотра. Закончив работу над документом, не забудьте его сохранить, указав вместо DOC формат DOCX (это не обязательно, но желательно).
На этом все, теперь вы знаете, как перевести ODT в Word. Просто выберите метод, который для вас будет более удобен, и пользуйтесь им, когда это необходимо.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Читайте также: