XML数据从一个Excel单元格传输到新的XML文件

XML数据从一个Excel单元格传输到新的XML文件

在 A1、A2、A3...A16000 的一个单元格中我拥有 XML 的整个上下文。

示例:一张发票的整个 XML 位于 A1 中,下一张发票位于 A2 中,依此类推。

我怎样才能将每个单元格的上下文保存到单独的 XML 文件中?

我尝试使用“filterxml”直接从单元格中提取相关数据,但是当 inovice 包含多个项目行时我遇到了麻烦。

答案1

假设整个 XML 确实是有效的 XML 格式,并且您只需将每个单元导出为其自己的文件,则可以使用以下 VBA:

Sub ExportCellsToXMLFiles()
    On Error GoTo err:
    Dim OutputFolder: OutputFolder = "D:\Test\XML\" 'Specify a valid dir to output to - make sure you include the trailing slash.
    Dim objFSO: Set objFSO = CreateObject("Scripting.FileSystemObject")
    Dim objFile
    Dim Count: Count = 1 'Row number to start on
    Do
        Set objFile = objFSO.CreateTextFile(OutputFolder & "Invoice_" & Count & ".xml", False, True) ' You can change the file names if needed here
        objFile.Write (Cells(Count, 1).Value)
        objFile.Close
        Count = Count + 1
    Loop Until IsEmpty(Cells(Count, 1).Value)

err:
    Set objFile = Nothing
    Set objFSO = Nothing
End Sub

编辑:我认为某些程序可能无法正确解释它,因为它们需要 UTF-8 字符集。请尝试以下代码:

Sub ExportCellsToXMLFiles()
    On Error GoTo err:
    Dim OutputFolder: OutputFolder = "D:\Test\XML\"
    Dim fsT As Object
    Dim Count: Count = 1
    Do
        Set fsT = CreateObject("ADODB.Stream")
        fsT.Type = 2
        fsT.Charset = "utf-8"
        fsT.Open
        fsT.WriteText (Cells(Count, 1).Value)
        fsT.SaveToFile OutputFolder & "Invoice_" & Count & ".xml", 2
        Count = Count + 1
    Loop Until IsEmpty(Cells(Count, 1).Value)

err:
    Set fsT = Nothing
End Sub

相关内容