簡體   English   中英

解釋由Microsoft Office Word和Excel文檔生成的xml

[英]interpreting xml produced by microsoft office word and excel documents

我希望建立一個免費的系統來提取文本(例如excel和word)中的文本,文本格式(例如,粗體等)和圖像內容。

在我的研究中,我發現,一旦使用7zip之類的壓縮實用程序提取了excel(xlsx)和word(docx)文檔的結構,便在xml中定義了它們。

我精通VBA,但是我無法找到對象模型(列出可以針對以下任何一種方法應用/操縱的所有對象和方法:

  1. Excel VBA
  2. Word VBA
  3. Word XML
  4. Excel XML

我已經知道許多excel vba對象,但這只是通過反復試驗和實驗,而不是通過讀取定義了方法/對象的對象模型!

問題

  • 我不知道如何解釋XML,因為我沒有一個對象模型顯示我手段等大膽

我正在嘗試開發一種通過xml查找以查找的工具:

  1. 文檔中任何圖像的位置,相對目錄(在Directory / Word / Media文件夾中)和實際文件路徑,例如C:\\ documents \\ josh \\ img1.png
  2. 文檔中任何文本的位置(我在思考線條,從上到下閱讀文檔,以及居中對齊等),因此我可以按正確的順序復制文本。
  3. 應用於文本的格式(粗體,某些字體,某些大小?

請幫助我找到一個對象模型或某種方式來解釋或解析它

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<w:document xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape" mc:Ignorable="w14 wp14"><w:body><w:p w:rsidR="001920B6" w:rsidRDefault="001920B6" w:rsidP="001920B6"><w:bookmarkStart w:id="0" w:name="_GoBack"/><w:bookmarkEnd w:id="0"/><w:r><w:rPr><w:noProof/></w:rPr><w:drawing><wp:anchor distT="0" distB="0" distL="114300" distR="114300" simplePos="0" relativeHeight="251658240" behindDoc="1" locked="0" layoutInCell="1" allowOverlap="1" wp14:anchorId="4B104522" wp14:editId="4A3907E9"><wp:simplePos x="0" y="0"/><wp:positionH relativeFrom="column"><wp:posOffset>0</wp:posOffset></wp:positionH><wp:positionV relativeFrom="paragraph"><wp:posOffset>1209675</wp:posOffset></wp:positionV><wp:extent cx="5943600" cy="3343275"/><wp:effectExtent l="0" t="0" r="0" b="9525"/><wp:wrapTight wrapText="bothSides"><wp:wrapPolygon edited="0"><wp:start x="0" y="0"/><wp:lineTo x="0" y="21538"/><wp:lineTo x="21531" y="21538"/><wp:lineTo x="21531" y="0"/><wp:lineTo x="0" y="0"/></wp:wrapPolygon></wp:wrapTight><wp:docPr id="1" name="Picture 1"/><wp:cNvGraphicFramePr><a:graphicFrameLocks xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" noChangeAspect="1"/></wp:cNvGraphicFramePr><a:graphic xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main"><a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/picture"><pic:pic xmlns:pic="http://schemas.openxmlformats.org/drawingml/2006/picture"><pic:nvPicPr><pic:cNvPr id="0" name="windows.png"/><pic:cNvPicPr/></pic:nvPicPr><pic:blipFill><a:blip r:embed="rId7" cstate="print"><a:extLst><a:ext uri="{28A0092B-C50C-407E-A947-70E740481C1C}"><a14:useLocalDpi xmlns:a14="http://schemas.microsoft.com/office/drawing/2010/main" val="0"/></a:ext></a:extLst></a:blip><a:stretch><a:fillRect/></a:stretch></pic:blipFill><pic:spPr><a:xfrm><a:off x="0" y="0"/><a:ext cx="5943600" cy="3343275"/></a:xfrm><a:prstGeom prst="rect"><a:avLst/></a:prstGeom></pic:spPr></pic:pic></a:graphicData></a:graphic><wp14:sizeRelH relativeFrom="page"><wp14:pctWidth>0</wp14:pctWidth></wp14:sizeRelH><wp14:sizeRelV relativeFrom="page"><wp14:pctHeight>0</wp14:pctHeight></wp14:sizeRelV></wp:anchor></w:drawing></w:r><w:r w:rsidR="00327DB9"><w:rPr><w:noProof/></w:rPr><w:t>Plain text</w:t></w:r></w:p><w:p w:rsidR="00327DB9" w:rsidRDefault="00327DB9" w:rsidP="001920B6"><w:pPr><w:rPr><w:b/></w:rPr></w:pPr><w:r><w:rPr><w:b/></w:rPr><w:t>bold</w:t></w:r><w:r w:rsidR="0009704D" w:rsidRPr="00327DB9"><w:rPr><w:b/></w:rPr><w:t xml:space="preserve"> text</w:t></w:r></w:p><w:p w:rsidR="00327DB9" w:rsidRPr="00327DB9" w:rsidRDefault="00327DB9" w:rsidP="00327DB9"><w:pPr><w:pStyle w:val="Heading1"/></w:pPr><w:r><w:t>heading</w:t></w:r></w:p><w:p w:rsidR="00327DB9" w:rsidRPr="001920B6" w:rsidRDefault="00327DB9"/><w:sectPr w:rsidR="00327DB9" w:rsidRPr="001920B6"><w:pgSz w:w="12240" w:h="15840"/><w:pgMar w:top="1440" w:right="1440" w:bottom="1440" w:left="1440" w:header="720" w:footer="720" w:gutter="0"/><w:cols w:space="720"/><w:docGrid w:linePitch="360"/></w:sectPr></w:body></w:document>

有關xml的問題

  1. 確定圖像(在底部)相對於文本(在其上方)的位置
  2. 有多少張圖片? 是否存在一張圖片,因為圖片的ID或INDEX為0?

看一下Office Open XML,它是所有MS-Office文檔的xml結構: http : //openxmldeveloper.org/ 有一本不錯的電子書,其中介紹了基礎知識: http ://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2007/08/13/1970.aspx

但是要當心:解析或解釋Office Open XML是一項極其艱巨的任務,尤其是在不適合該工作的VBA中。 C#/ VB.net中有許多庫可以讀取Office Open xml文檔,這將是一個更好的起點。

暫無
暫無

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

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