Анализ и создание файлов Microsoft Office 2007 (.docx, .xlsx, .pptx)

У меня есть веб-проект, в котором я должен импортировать текст и изображения из предоставленного пользователем документа, и одним из возможных форматов является Microsoft Office 2007. Также необходимо создавать документы в этом формате.

Сервер работает под управлением CentOS 5.2 и на нем установлен PHP / Perl / Python. При необходимости я могу выполнить локальные двоичные файлы и сценарии оболочки. Мы используем Apache 2.2, но перейдем на Nginx, как только он будет запущен.

Какие у меня варианты? У кого-нибудь был опыт с этим?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
13
0
17 171
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Вероятно, вы можете проверить код для Сфайдер. Это документы и PDF-файлы, поэтому я уверен, что они могут их прочитать. Может также привести вас в правильном направлении для других форматов Office.

Ответ принят как подходящий

Форматы файлов Office 2007 открыты и хорошо документированы. Грубо говоря, все новые форматы файлов, оканчивающиеся на «x», представляют собой XML-документы, сжатые в формате zip. Например:

To open a Word 2007 XML file Create a temporary folder in which to store the file and its parts.

Save a Word 2007 document, containing text, pictures, and other elements, as a .docx file.

Add a .zip extension to the end of the file name.

Double-click the file. It will open in the ZIP application. You can see the parts that comprise the file.

Extract the parts to the folder that you created previously.

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

Если вам нужно читать старые форматы, OpenOffice имеет API и может читать и записывать Office 2003 и более старые документы с большим или меньшим успехом.

Я успешно использовал Пакет SDK для формата OpenXML в проекте для изменения электронной таблицы Excel с помощью кода. Для этого потребуется .NET, и я не уверен, насколько хорошо он будет работать с Mono.

Модуль python docx может создавать отформатированные файлы Microsoft Office docx из чистого Python. Изначально он выполняет заголовки, абзацы, таблицы и маркеры, но модуль makeelement () может быть расширен для создания произвольных элементов, таких как изображения.

from docx import *
document = newdocument()

# This location is where most document content lives 
docbody = document.xpath('/w:document/w:body',namespaces=wordnamespaces)[0]

# Append two headings
docbody.append(heading('Heading',1)  )   
docbody.append(heading('Subheading',2))
docbody.append(paragraph('Some text')

Другие вопросы по теме