564765040 2013-09-25 13:10 采纳率: 0%
浏览 1029

vb编程,excel单元格中内容怎么筛选遍历到xml文件中?

如excel单元格内容:
衣服
1.女装
a.裤子
b.毛衣
c.鞋子
2.男装
a.裤子
b.毛衣
电器
1.冰箱
a.x型号
b.y型号
2.电视机
a.长虹
b.HTC
c.惠普
3.空调
a.格力
需要把大标题与1、2、3标题遍历显示到xml文件中,把a\b\c的内容不显示,请问各位前辈,这个怎么实现,谢谢了!

  • 写回答

1条回答

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-02-20 11:55
    关注

    该回答引用ChatGPT

    要实现这个功能,可以使用VBA编程来处理Excel单元格中的内容,并将需要的信息输出到XML文件中。以下是一个实现的示例代码:

    Sub ExcelToXML()
        Dim xmlDoc As Object
        Set xmlDoc = CreateObject("MSXML2.DOMDocument")
        
        '创建XML文件头'
        Dim xmlHeader As Object
        Set xmlHeader = xmlDoc.createProcessingInstruction("xml", "version=""1.0"" encoding=""UTF-8""")
        xmlDoc.appendChild xmlHeader
        
        '创建根节点'
        Dim root As Object
        Set root = xmlDoc.createElement("Root")
        xmlDoc.appendChild root
        
        '遍历单元格中的内容'
        Dim rng As Range
        Set rng = Range("A1")
        While rng.Value <> ""
            '判断是否为大标题'
            If Left(rng.Value, 1) <> "." Then
                Dim node As Object
                Set node = xmlDoc.createElement("Category")
                node.setAttribute "Name", rng.Value
                root.appendChild node
            Else
                '判断是否为1、2、3标题'
                Dim level As Integer
                level = Len(rng.Value) - Len(Replace(rng.Value, ".", ""))
                If level <= 3 Then
                    '获取父节点'
                    Dim parentNode As Object
                    Set parentNode = root
                    For i = 2 To level
                        Set parentNode = parentNode.LastChild
                    Next i
                    
                    '创建子节点'
                    Dim subNode As Object
                    Set subNode = xmlDoc.createElement("Item")
                    subNode.setAttribute "Name", Replace(rng.Value, ".", "")
                    parentNode.appendChild subNode
                End If
            End If
            
            '下一个单元格'
            Set rng = rng.Offset(1, 0)
        Wend
        
        '保存XML文件'
        Dim xmlPath As String
        xmlPath = "C:\Example.xml"
        xmlDoc.Save xmlPath
    End Sub
    

    上述代码实现了以下功能:

    • 创建一个XML文件,并在文件中添加XML文件头和根节点。

    • 遍历Excel单元格中的内容,根据内容的格式判断是大标题、1、2、3标题还是a、b、c的内容。

    • 如果是大标题,创建一个Category节点,并将其添加到根节点中。

    • 如果是1、2、3标题,创建一个Item节点,并将其添加到对应的Category节点下。

    • 最后保存XML文件。

    需要注意的是,上述代码仅是一个示例,具体实现可能需要根据实际情况进行修改。同时,如果需要过滤掉a、b、c的内容,可以在代码中添加相应的判断逻辑,例如根据内容长度来判断是否为a、b、c的内容。

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题