我需要能够读取每一行和每一列上的内容,例如D3行上的内容,但是不确定如何执行此操作。我知道它可以生成电子表格,但是该电子表格是用什么代码或语言编写的,我该如何学习从该来源读取特定信息?
给人的印象是它是xml,并且具有它创建的完整表,但是仍然无法弄清楚我如何读取每一行或每一列的内容。
<wf:table h="85" w="405" range="A1:D5">
<wf:fmts>
<wf:bdrFmts>
<wf:bdrFmt style="solid"/>
<wf:bdrFmt style="double"/>
</wf:bdrFmts>
<wf:fillFmts>
<wf:fillFmt color="#0094ff"/>
</wf:fillFmts>
<wf:valFmts>
<wf:valFmt fmtStr="MMMM D, <new_line> YYYY" typ="dateTime"/>
<wf:valFmt typ="text"/>
<wf:valFmt outScl="6" typ="accounting" thouSep="true"/>
</wf:valFmts>
<wf:txtFmts>
<wf:txtFmt fontFamily="Arial"/>
<wf:txtFmt fontWeight="bold" textAlign="center" fontFamily="Arial"/>
<wf:txtFmt fontWeight="bold" fontFamily="Arial" color="#00cc00"/>
</wf:txtFmts>
<wf:condFmts/>
</wf:fmts>
<wf:cols>
<wf:col w="201" />
<wf:col gutter="3.35" w="100" />
<wf:col w="4" />
<wf:col gutter="3.35" w="100" />
</wf:cols>
<wf:rows>
<wf:row h="25">
<wf:c tFmt="1"/>
<wf:c formattedString="June 30, 
2016" tFmt="2" val="6/30/2016" vFmt="1" bFmt="0|. 0|0|1"/>
<wf:c tFmt="1"/>
<wf:c formattedString="December 31, 
2015" tFmt="2" val="12/31/2015" vFmt="1" bFmt="0|0|0|1"/>
</wf:row>
<wf:row h="15">
<wf:c formattedString="Debt Securities" tFmt="1" vFmt="2" val="Debt Securities"/>
<wf:c formattedString="1,000" tFmt="1" fFmt="1" val="1000" inScl="6" vFmt="3"/>
<wf:c tFmt="1"/>
<wf:c formattedString="1,200" tFmt="1" fFmt="1" val="1200" inScl="6" vFmt="3"/>
</wf:row>
<wf:row h="15">
<wf:c formattedString="Equities" tFmt="1" vFmt="2" val="Equities"/>
<wf:c formattedString="500" tFmt="1" val="500" inScl="6" vFmt="3"/>
<wf:c tFmt="1" />
<wf:c formattedString="600" tFmt="1" val="600" inScl="6" vFmt="3"/>
</wf:row>
<wf:row h="15">
<wf:c formattedString="Money Market Funds" tFmt="1" vFmt="2" val="Money Market Funds"/>
<wf:c formattedString="200" tFmt="1" fFmt="1" val="200" inScl="6" vFmt="3"/>
<wf:c tFmt="1"/>
<wf:c formattedString="200" tFmt="1" fFmt="1" val="200" inScl="6" vFmt="3"/>
</wf:row>
<wf:row h="15">
<wf:c formattedString="Total Cash Equivalents" tFmt="1" vFmt="2" val="Total Cash Equivalents"/>
C
<wf:c tFmt="1" />
<wf:c formattedString="2,000" tFmt="3" formula="SUM(D2:D4)" val="2000" inScl="6" vFmt="3" bFmt="0|0|1|2"/>
</wf:row>
</wf:rows>
</wf:table>
</wf:Worksheet>
</WFML>
答案 0 :(得分:-1)
Python中的BeautifulSoup模块可以轻松地遍历像这样的任何XML外观代码。
将代码放入我命名为pagecode
的字符串中之后,我运行此代码以提取第四行第三列中的内容:
from bs4 import BeautifulSoup
soup = BeautifulSoup(pagecode, 'lxml')
rows = soup.find_all("wf:row")
cell = rows[3].find_all("wf:c")[2] # Indexing starts at 0, not 1!
print(cell) # Displays <wf:c tfmt="1"></wf:c>