添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

若干年前满满的热情,被懒惰消磨。。。闲话少说,昨天闲着看小说的时候,突然朋友来信询问用Excel的VBA把XML转成Excel格式表示出来的程序编译通不过。他是网上找的一个简单的例子,没想到程序虽短,坑却不少。随即东拼西凑,做了个例子大致解决问题。网上雷同的内容肯定很多,我只能保证自己的肯定能运行,同时借鉴了网上诸位大能的片段,反正现在编程不就是copy,paste嘛。说一句客观的话:每一句都是自己写的程序的可靠性很低,需要测试测试再测试。被大家传唱的才是经过千锤百炼的,那些被抛弃的都是有bug哒。

要求很简单,读取XML文件,在Excel上表示。程序没有做出错处理,缺省认为都是正常情况。运行环境是Window10,Office2007。编程的时候注意导入Microsoft XML6.0,运行时需要Macro有效。

XML文件:d:\samlple_xml.xml

<?xml version="1.0" encoding="utf-8"?>

<members>
<member id="1">
<name>Zhao</name>
<age>20</age>
</member>
<member id="2">
<name>Qian</name>
<age>21</age>
</member>
<member id="3">
<name>Sun</name>
<age>22</age>
</member>
<member id="4">
<name>Li</name>
<age>23</age>
</member>
</members>

Sub readXmlToExcel()

Dim XML As Object                   'XML

Dim elem_members As Object  'Root
Dim elem_member As Object   'node
Dim elem_id As Object       'Attribute
Dim elem_name As Object     'child node
Dim elem_age As Object      'child node
Dim rowIndex                'cell row's index

'Initialization
Set XML = CreateObject("MSXML2.DOMDocument")    'create xml object
rowIndex = 2

XML.Load ("d:\samlple_xml.xml")                'read xml file

Set elem_members = XML.getElementsByTagName("members").Item(0)  'get root

For Each elem_member In elem_members.getElementsByTagName("member")     'loop each root node

Set elem_id = elem_member.Attributes.getNamedItem("id")             'get node's attribute
Set elem_name = elem_member.getElementsByTagName("name").Item(0)    'get child note
Set elem_age = elem_member.getElementsByTagName("age").Item(0)      'get child note

'write to excelsheet
Worksheets(1).Cells(rowIndex, 1).Value = elem_id.Text
Worksheets(1).Cells(rowIndex, 2).Value = elem_name.Text
Worksheets(1).Cells(rowIndex, 3).Value = elem_age.Text
rowIndex = rowIndex + 1
Next elem_member

End Sub

结果如下:

若干年前满满的热情,被懒惰消磨。。。闲话少说,昨天闲着看小说的时候,突然朋友来信询问用Excel的VBA把XML转成Excel格式表示出来的程序编译通不过。他是网上找的一个简单的例子,没想到程序虽短,坑却不少。随即东拼西凑,做了个例子大致解决问题。网上雷同的内容肯定很多,我只能保证自己的肯定能运行,同时借鉴了网上诸位大能的片段,反正现在编程不就是copy,paste嘛。说一句客观的话:每一句都是自己写的程序的可靠性很低,需要测试测试再测试。被大家传唱的才是经过千锤百炼的,那些被抛弃的都是有bug哒。要求
可以使用 Python 中的 openpyxl 库来 读取 Excel 文件。 下面是一个简单的例子,假设你有一个 Excel 文件 test.xlsx,其中第一列为内容,你想要 读取 第一列并根据内容生成宏定义: import openpyxl # 打开 Excel 文件 wb = openpyxl.load_workbook('test.xlsx') # 获取第一个 sheet sheet = wb.worksheets[0] # 遍历第一列的内容 for ro w in sheet.iter_ ro ws(min_ ro w=1, min_col=1, max_col=1): cell_value = ro w[0].value # 根据 cell_value 生成宏定义 # 例如:#define MAC RO _NAME cell_value print('#define MAC RO _NAME', cell_value) 这样就可以 读取 第一列的内容并根据内容生成宏定义了。