Excel工作表数据中的XML文件

野比

您好,使用下面的代码段,我在下面创建了一个xml,但我注意到:我在代码中使用的参数顺序与输出中的参数顺序不同,即,输出<node y="-3749099.0" x="-45194.0" id="11542.0"/>应该<node id="11542.0" x="-45194.0" y="-3749099.0"/>不是下面所需的输出。有人可以建议我如何:

  • 更正我的代码以获得正确的输出
  • 扩展代码,以便如果我必须使用具有许多列(多于3个)的excel文件,则不必val[0], val[1], val[2]FIELD(id=str(val[0]), x=str(val[1]), y=str(val[2])),

代码段:

import lxml.etree
import lxml.builder
import xlrd

wb = xlrd.open_workbook("emme_nodes1.xls")
sh = wb.sheet_by_index(0)
tags = [n.replace(" ", "").lower() for n in sh.row_values(0)]

for row in range(1, sh.nrows):
    val = sh.row_values(row)

    E = lxml.builder.ElementMaker()
    ROOT = E.network
    DOC = E.nodes
    FIELD = E.node
    my_doc = ROOT(
            DOC(
                FIELD(id=str(val[0]), x=str(val[1]), y=str(val[2])),
                )
            )
    print lxml.etree.tostring(my_doc, pretty_print=True)

输出:

<network>
  <nodes>
    <node y="-3748681.0" x="-45333.0" id="11543.0"/>
  </nodes>
</network>

<network>
  <nodes>
    <node y="-3747847.0" x="-44369.0" id="11540.0"/>
  </nodes>
</network>

<network>
  <nodes>
    <node y="-3748683.0" x="-45060.0" id="11541.0"/>
  </nodes>
</network>

<network>
  <nodes>
    <node y="-3750248.0" x="-45518.0" id="11546.0"/>
  </nodes>
</network>

<network>
  <nodes>
    <node y="-3750024.0" x="-45448.0" id="11547.0"/>
  </nodes>
</network>

<network>
  <nodes>
    <node y="-3749821.0" x="-44745.0" id="11544.0"/>
  </nodes>
</network>

<network>
  <nodes>
    <node y="-3750508.0" x="-45561.0" id="11545.0"/>
  </nodes>
</network>

<network>
  <nodes>
    <node y="-3750202.0" x="-45802.0" id="11548.0"/>
  </nodes>
</network>

<network>
  <nodes>
    <node y="-3749805.0" x="-45485.0" id="11549.0"/>
  </nodes>
</network>

所需输出:

<network>
  <nodes>
    <node id="11542.0" x="-45194.0" y="-3749099.0"/>
    <node id="11543.0" x="-45333.0" y="-3748681.0"/>
    <node id="11540.0" x="-44369.0" y="-3747847.0"/>
    <node id="11541.0" x="-45060.0" y="-3748683.0"/>
    <node id="11546.0" x="-45518.0" y="-3750248.0"/>
    <node id="11547.0" x="-45448.0" y="-3750024.0"/>
    <node id="11544.0" x="-44745.0" y="-3749821.0"/>
    <node id="11545.0" x="-45561.0" y="-3750508.0"/>
    <node id="11549.0" x="-45485.0" y="-3749805.0"/>
    <node id="11548.0" x="-45802.0" y="-3750202.0"/>
    <node id="11549.0" x="-45485.0" y="-3749805.0"/>
  </nodes>
</network>

Excel工作表(emme_nodes1.xls):

 id         x           y
11542   -45194.0    -3749099.0
11543   -45333.0    -3748681.0
11540   -44369.0    -3747847.0
11541   -45060.0    -3748683.0
11546   -45518.0    -3750248.0
11547   -45448.0    -3750024.0
11544   -44745.0    -3749821.0
11545   -45561.0    -3750508.0
11548   -45802.0    -3750202.0
11549   -45485.0    -3749805.0
野比

我终于找到了这个解决方案,并且效果很好

import xlrd
from lxml import etree

root = etree.Element('network')
root.set('name', 'Network')
tree = etree.ElementTree(root)
name = etree.Element('nodes')
root.append(name)   
wb = xlrd.open_workbook("emme_nodes1.xls")
sh = wb.sheet_by_index(0)

for row in range(1, sh.nrows):
    val = sh.row_values(row)
    element = etree.SubElement(name, 'node')
    element.set('id', str(int(val[0])))
    element.set('x', str(val[1]))
    element.set('y', str(val[2]))
print etree.tostring(root,pretty_print=True)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

EXCEL,通过VBA代码从表中的数据创建XML文件

来自分类Dev

验证Excel工作表中的数据

来自分类Dev

Excel VBA每个工作表中的数据

来自分类Dev

从 Excel 中的多个工作表返回数据

来自分类Dev

如何将旧 Excel 文件中多张工作表中的数据导出到新 Excel 文件中的一张工作表中

来自分类Dev

将数据框导出为 R 中单个 Excel 文件中的多个工作表

来自分类Dev

如何将 PyCharm 文件中的数据导出到 Excel 工作表中?

来自分类Dev

无法使用带有 Python LXML 库的 Excel 工作表中的数据创建 XML

来自分类Dev

Excel VBA宏-从现有文件中的多个工作表中复制数据,并创建新文件并将所选数据粘贴到单独的工作表中

来自分类Dev

从工作表中的excel数据在DB中创建表

来自分类Dev

循环以便为Excel文件中的每个工作表创建几个数据框

来自分类Dev

Rails,如何使用“ roo” gem替换或写入excel工作表文件中的数据

来自分类Dev

无法使用 openpyxl 将数据附加到 Excel 文件中的工作表

来自分类Dev

使用Open XML更改Excel文件的工作表标签颜色

来自分类Dev

如何使用Perl删除Excel工作表中的整个列并在新的Excel文件中写入更新的数据?

来自分类Dev

如何使用Perl删除Excel工作表中的整个列并在新的Excel文件中写入更新的数据?

来自分类Dev

VBA打开Excel文件并将表1数据粘贴到当前工作簿的“ RRimport”表中

来自分类Dev

如何将多个数据表导出到单个Excel文件中的多个工作表

来自分类Dev

根据条件将多个数据框保存在Excel工作表和不同的Excel文件中

来自分类Dev

将多个 Excel 文件合并到一张 Excel 工作表中,无需复制公式和重复数据

来自分类Dev

从 Excel 文件中所有工作表的列中复制数据并将其粘贴到一张工作表中

来自分类Dev

如何在R中的一个csv excel文件的多个工作表中写入多个数据框?

来自分类Dev

从Excel工作表导入数据

来自分类Dev

Excel工作表中CSV数据的最大行数

来自分类Dev

如何使 Excel 数据透视表在 Google Sheet 中工作?

来自分类Dev

检查每个检查excel文件中的现有工作表

来自分类Dev

如何从R中的Excel文件中提取工作表名称

来自分类Dev

使用ByteScout Spreadsheet在Excel文件中写入多个工作表

来自分类Dev

在闪亮的应用程序中的同一excel文件的多个工作表中下载多个数据框

Related 相关文章

  1. 1

    EXCEL,通过VBA代码从表中的数据创建XML文件

  2. 2

    验证Excel工作表中的数据

  3. 3

    Excel VBA每个工作表中的数据

  4. 4

    从 Excel 中的多个工作表返回数据

  5. 5

    如何将旧 Excel 文件中多张工作表中的数据导出到新 Excel 文件中的一张工作表中

  6. 6

    将数据框导出为 R 中单个 Excel 文件中的多个工作表

  7. 7

    如何将 PyCharm 文件中的数据导出到 Excel 工作表中?

  8. 8

    无法使用带有 Python LXML 库的 Excel 工作表中的数据创建 XML

  9. 9

    Excel VBA宏-从现有文件中的多个工作表中复制数据,并创建新文件并将所选数据粘贴到单独的工作表中

  10. 10

    从工作表中的excel数据在DB中创建表

  11. 11

    循环以便为Excel文件中的每个工作表创建几个数据框

  12. 12

    Rails,如何使用“ roo” gem替换或写入excel工作表文件中的数据

  13. 13

    无法使用 openpyxl 将数据附加到 Excel 文件中的工作表

  14. 14

    使用Open XML更改Excel文件的工作表标签颜色

  15. 15

    如何使用Perl删除Excel工作表中的整个列并在新的Excel文件中写入更新的数据?

  16. 16

    如何使用Perl删除Excel工作表中的整个列并在新的Excel文件中写入更新的数据?

  17. 17

    VBA打开Excel文件并将表1数据粘贴到当前工作簿的“ RRimport”表中

  18. 18

    如何将多个数据表导出到单个Excel文件中的多个工作表

  19. 19

    根据条件将多个数据框保存在Excel工作表和不同的Excel文件中

  20. 20

    将多个 Excel 文件合并到一张 Excel 工作表中,无需复制公式和重复数据

  21. 21

    从 Excel 文件中所有工作表的列中复制数据并将其粘贴到一张工作表中

  22. 22

    如何在R中的一个csv excel文件的多个工作表中写入多个数据框?

  23. 23

    从Excel工作表导入数据

  24. 24

    Excel工作表中CSV数据的最大行数

  25. 25

    如何使 Excel 数据透视表在 Google Sheet 中工作?

  26. 26

    检查每个检查excel文件中的现有工作表

  27. 27

    如何从R中的Excel文件中提取工作表名称

  28. 28

    使用ByteScout Spreadsheet在Excel文件中写入多个工作表

  29. 29

    在闪亮的应用程序中的同一excel文件的多个工作表中下载多个数据框

热门标签

归档