将Excel数据传输到XML

时间:2014-08-10 13:19:34

标签: python xml excel xml-parsing

我是擅长在python中处理XML的人,所以对我来说很容易。 我一直在尝试将我的Excel数据传输到一个看起来像这样的xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<xml>
    <shelter>
        <adress>..</adress>
        <code>...</code>
        <neighborhood>..</neighborhood>
    </shelter>
    <shelter>
        <adress>...</adress>
        <code>...</code>
        <neighborhood>...</neighborhood>
    </shelter>
</xml>

我的excel电子表格看起来像这样:

enter image description here

相当简单吧?我在excel上尝试了几个方法,我也尝试编写一个脚本,但似乎无法使它工作。 有任何想法吗? 非常感谢!

1 个答案:

答案 0 :(得分:0)

如果这只是一次性转换,您可以使用CONCATENATE函数来创建XML的内容。将此公式放在所有行的D列中:

=CONCATENATE("<shelter><adress>",A2,"</adress><code>",B2,"</code><neighborhood>",C2,"</neighborhood></shelter>")

然后将文本复制到新文件,在第一行和最后一行添加相应的XML标记,您就完成了。

如果您需要在Python中执行此操作,请将文件另存为CSV,以便您有类似的内容(请注意,标题行已从此文件中删除):

adress1,1,n1
adress2,2,n1
adress3,3,n1 

然后,您可以使用以下Python脚本来获得所需的输出:

print '<?xml version="1.0" encoding="UTF-8"?>'
with open('test.csv','r') as f:
    for x in f:
        splitted = x.split(',')
        print """
  <shelter>
    <adress>{0}</address>
    <code>{1}</code>
    <neighborhood>{2}</neighborhood>
  </shelter>""".format(x[0],x[1],x[2])
print '</xml>'