XML导出后导入Excel

时间:2019-02-26 16:12:28

标签: excel vba

最好先解释一下我的问题:

在创建了一个用于将文件从我的表格导出到XML文件的模块之后,我还想创建一种将数据再次导入到表格中的方法,因此可以将其映射回inputmask。 就像解释我在做什么: 我用Excel创建了一个“工具”,您可以在其中创建一棵大目录树(动态最多生成2742个目录),然后我的工具从模板中获取文档,并使用Textmarkers从InputMask中自动为其填充内容。 这很有效,但是谁在使用此功能,我希望他将能够“保存”其输入的状态,并且他也应该能够稍后再次打开它。This is my InputSheet

您输入的所有内容都会转移到以下工作表: 2

查看第一张图片-您可以看到“导出”和“导入”按钮 单击“导出”时,将使用以下代码:

    Sub Save_InputState()
'********************************************
'** State Export - Save your current state
'********************************************
'** Dimensioning of Variables
Dim strFile2 As String, Text As String
Dim lngRow2, lngCol2 As Long
Dim varShow2
'** Errorhandling
On Error GoTo Fehlermeldung
'** XML-Path and Name **

strFile2 = ThisWorkbook.Path & "\" & (Format(Now(), "YYYY-MM-DD")) & "_" & Worksheets("Exporter").Cells(4, 2) & "_" & Worksheets("01InputMask").Cells(32, 4).Value & "_" & "SaveState" & ".xml"

'** Old Export Command **
'strFile = ThisWorkbook.Path & "\Settings.xml"

'** File (ASCII) open
Open strFile2 For Output As #1
'** XML-Header write
Print #1, "<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?> "
Print #1, "<Data xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"">"
'** Loop first two rows of table

For lngRow2 = 2 To Worksheets("Exporter").Cells(Rows.Count, 1).End(xlUp).Row
'** Write begin of Data
 Print #1, "<Line ID=""" & lngRow2 - 0 & """>"

 '** Write begin of fields (row A-B)
 Print #1, "<term>" & Worksheets("Exporter").Cells(lngRow2, 1) & "</term>"
 Print #1, "<value>" & Worksheets("Exporter").Cells(lngRow2, 2) & "</value>"

 '** Write end
 Print #1, "</Line>"
Next lngRow2
'** Datea-Tag close
Print #1, "</Data>"
'** XML-File close
Close #1

MsgBox Chr(32) & (Format(Now(), "YYYY-MM-DD")) & "_" & Worksheets("Exporter").Cells(4, 2) & "_" & Worksheets("01InputMask").Cells(32, 4).Value & "_" & "SaveState" & ".xml" & vbNewLine & "had been stored into where it belongs - the root of your Template.", vbInformation, "Startup Project Manager"

'** Call Notepad with generated XML File
'varShow = Shell(Environ("windir") & "\notepad.exe " & strFile, 1)
Exit Sub

'** Errorhandling
Fehlermeldung:
Close #1
 MsgBox "Fehler-Nr.: " & Err.Number & vbNewLine & vbNewLine _
 & "Beschreibung: " & Err.Description _
 , vbCritical, "Fehler"
End Sub

所有内容都导出到可以正常工作的XML,如何再次导入它?我完全不知道代码需要什么样子...

我真的希望有人能帮助我。

0 个答案:

没有答案