簡體   English   中英

解析並生成Microsoft Office 2007文件(.docx,.xlsx,.pptx)

[英]Parsing and generating Microsoft Office 2007 files (.docx, .xlsx, .pptx)

我有一個Web項目,必須從用戶提供的文檔中導入文本和圖像,其中一種可能的格式是Microsoft Office2007。還需要以這種格式生成文檔。

該服務器運行CentOS 5.2,並已安裝PHP / Perl / Python。 如果需要,我可以執行本地二進制文件和shell腳本。 我們使用Apache 2.2,但將在Nginx上線后切換到該版本。

我有什么選擇? 任何人都有經驗嗎?

Office 2007文件格式是開放的並且有據可查 粗略地說,所有以“ x”結尾的新文件格式都是zip壓縮XML文檔。 例如:

打開Word 2007 XML文件創建一個臨時文件夾,用於在其中存儲文件及其部分。

將包含文本,圖片和其他元素的Word 2007文檔另存為.docx文件。

在文件名的末尾添加.zip擴展名。

雙擊文件。 它將在ZIP應用程序中打開。 您可以看到組成文件的部分。

將零件提取到先前創建的文件夾中。

其他文件格式大致相似。 我還不知道有任何開源庫可以與它們進行交互-但是根據您的確切要求,讀寫簡單的文檔看起來並不難。 當然,它比舊格式要容易得多。

如果您需要閱讀較舊的格式,則OpenOffice具有API,並且可以或多或少地成功讀寫Office 2003和較舊的文檔。

python docx模塊可以從純Python生成格式化的Microsoft Office docx文件。 開箱即用,它可以處理標題,段落,表和項目符號,但是可以擴展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')

我已在項目中成功使用OpenXML Format SDK通過代碼修改Excel電子表格。 這將需要.NET,但我不確定它在Mono下如何運行。

您可能可以檢查Sphider的代碼。 它們是docs和pdf,所以我確定他們可以閱讀。 可能還會引導您朝着其他Office格式的正確方向發展。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM