如何使用Python将XML文件导入excelxls文件模板?

2024-09-28 05:40:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我在一个Excel文件中定义了一个列。手动地,我可以在模板上单击鼠标右键,然后选择“XML”>;“导入”,然后选择XML文件,最后保存该文件。在

如何用Python自动编程来执行这个任务?在

XML文件示例:

<DCPowerFlow>
    <branches>
        <branch>
            <busFrom name="bus_one" number="1" />
            <busTo name="bus_two" number="2" />
            <id>1</id>
            <rateA>1000</rateA>
            <resultPowerFlow>
                <probOverFlow>0.0</probOverFlow>
                <maxOverFlow>800</maxOverFlow>
            </resultPowerFlow>
        </branch>
        <branch>
            <busFrom name="bus_two" number="2" />
            <busTo name="bus_three" number="3" />
            <id>1</id>
            <rateA>1200</rateA>
            <resultPowerFlow>
                <probOverFlow>0.1</probOverFlow>
                <maxOverFlow>1300</maxOverFlow>
            </resultPowerFlow>
        </branch>
    </branches>
</DCPowerFlow>

要检查手动任务:

  1. 将上面的示例另存为XML文件。在
  2. 为了创建Excel XLS模板,您只需用Excel打开上面的XML示例,确保模板上没有数据(如果在导入中添加了数据,请删除数据),并将文件另存为XLS。在
  3. 导入示例XML文件。右键单击创建的Excel模板文件,然后单击“XML”>;“导入”,然后选择XML示例文件。在
  4. 将包含数据的模板另存为新的XLS。在

所以我需要做的是将步骤3和4自动化。在


Tags: 文件数据name模板branchid示例number
2条回答

你有没有试过用美女和熊猫?请注意,我在下面的脚本中使用的解析器要求您已经安装了lxml。如果你没有它,只需pip安装lxml。在

import pandas as pd
from bs4 import BeautifulSoup

file = open("file.xml", 'r')
soup = BeautifulSoup(file, 'lxml')
df = pd.DataFrame({'ids': [x.text for x in soup.find_all('id')]})
df.to_excel('data.xls')

你需要知道如何解析文件。如果需要有关如何解析文件的详细信息,请尝试访问BeautifulSoup documentation。使用此代码,您可以循环访问您感兴趣的所有文件,并将其解析为数据帧,然后使用to_excel方法导出它们。在

最后,我可以使用win32com.client模块来解决这个问题。在

我使用以下代码成功地将xml导入到我用作模板的现有Excel xlsx文件中,然后用其他名称保存它:

import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Open("D:/tmp/template.xlsx")
wb.XmlImport("D:/tmp/result.xml")
wb.SaveAs("D:\\tmp\\result.xlsx")
wb.Close()

Excel工作簿的方法可以找到here。我还必须考虑到^{} method doesn't support forward slashes。在

相关问题 更多 >

    热门问题