python - 在python中解析旧的excel xml

标签 python excel xml

我从网上下载了一些 excel xml 并尝试解析它。我尝试了许多解决方案,但没有一个可以工作,例如使用 xlrd、xml 解析、elementTree 或 BeautifullSoup。这是xml的样子

<?xml version="1.0"?>
<ss:Workbook xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
<ss:Styles>
<ss:Style ss:ID="Default">
<ss:Alignment ss:Horizontal="Left"/>
</ss:Style>
<ss:Style ss:ID="wraptext">
<ss:Alignment ss:Horizontal="Left" ss:WrapText="1"/>
<ss:Font ss:Italic="1"/>
</ss:Style>
<ss:Style ss:ID="disclaimer">
<ss:Alignment ss:Vertical="Top" ss:WrapText="1"/>
<ss:Font ss:Italic="1"/>
</ss:Style>
<ss:Style ss:ID="DefaultHyperlink">
<ss:Alignment ss:Vertical="Center" ss:WrapText="1"/>
<ss:Font ss:Color="#0000FF" ss:Underline="Single" />
</ss:Style>
<ss:Style ss:ID="headerstyle">
<ss:Font ss:Bold="1" />
</ss:Style>
<ss:Style ss:ID="Date">
<ss:NumberFormat ss:Format="dd\-mmm\-yyyy"/>
</ss:Style>
<ss:Style ss:ID="Left">
<ss:Alignment ss:Horizontal="Left"/>
<ss:NumberFormat ss:Format="Standard"/>
</ss:Style>
<ss:Style ss:ID="Right">
<ss:Alignment ss:Horizontal="Right"/>
<ss:NumberFormat ss:Format="Standard"/>
</ss:Style>
</ss:Styles>
<ss:Worksheet ss:Name="Holdings">
<ss:Table>
<ss:Row>
<ss:Cell ss:StyleID="Left">
<ss:Data ss:Type="String">06-Oct-2020</ss:Data>
</ss:Cell>
</ss:Row>
<ss:Row>
<ss:Cell ss:StyleID="Left">
<ss:Data ss:Type="String">iShares Russell Top 200 Value ETF</ss:Data>
</ss:Cell>
</ss:Row>
.
.
.
或者您可以下载完整的 xml here
最终我需要将文件转换为 DataFrame,但现在我对任何解决方案持开放态度,可能先转换为 csv。
任何人都可以帮忙吗?

最佳答案

另一种方法。

from simplified_scrapy import SimplifiedDoc, utils, req
xml = req.get(
    'https://www.ishares.com/us/products/239722/ishares-russell-top-200-value-etf/1521942788811.ajax?fileType=xls&fileName=iShares-Russell-Top-200-Value-ETF_fund&dataType=fund'
)
xml = xml.read().decode('utf-8')
doc = SimplifiedDoc(xml)
worksheets = doc.selects('ss:Worksheet') # Get all Worksheets
for worksheet in worksheets:
    rows = worksheet.selects('ss:Row').selects('ss:Cell>text()') # Get all rows
    utils.save2csv(worksheet['ss:Name'] + '.csv', rows) # Save data to csv
以下是更多示例:https://github.com/yiyedata/simplified-scrapy-demo/tree/master/doc_examples

关于python - 在python中解析旧的excel xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64276559/

相关文章:

android - getString 返回错误的语言字符串

xml - NSXMLParser,两个相同的元素有帮助!

python - 向直方图添加图例/图例

python - 如何在数据框中添加新的计算列?

python - 如何在 Python 中的函数之间共享变量?

excel - 如何统计Excel中错误值的数量

xml - 使用 VBA 删除 Excel 中的 XML 重复项

python-3.x - 通过 openpyxl 使用公式从 Excel 单元格获取值

xml - 尝试通过 Azure AD B2C 自定义策略登录时,Discord api 返回 401 未经授权

python - 全局变量在python中的文件之间不改变