我需要创建一个宏(我以前从未做过),如果你们能引导我走上正确的道路,我将非常感激。
我目前正在做什么:
我创建了一个映射 XML,并将其导入到 Excel 中。将其导入 Excel 后,用户将继续在其中粘贴一些数据并将其导出以接收 XML 数据文件,然后用户可以将其放置到 FTP,作业将在其中拾取它并将其导入数据库。
问题是这样的:
导出有以下节点,我不想要:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
相反,我想将其替换为以下内容:
<?xml version="1.0" ?>
<Root xmlns="http://tempuri.org/CourseImport.xsd">
我如何自动化这个? Excel 中是否有某种设置可以实现这一点?
基本上,我希望导出具有我的根目录而不是默认根目录,并且我希望能够自动将文件拖放到指定的路径:例如:\development\school\course import
谢谢!
我的同事实际上帮我解决了这个问题。我想我应该分享我所做的事情
Sub ExportXML()
'
' Export XML Macro exports the data that is in Excel to XML.
'
Const ForReading = 1
Const ForWriting = 2
Set objFSO = CreateObject("Scripting.FileSystemObject")
'
newFileName = Application.GetSaveAsFilename("out.xml", "XML Files (*.xml), *.xmls")
If newFileName = False Then
Exit Sub
End If
If objFSO.FileExists(newFileName) Then
objFSO.DeleteFile (newFileName)
End If
ActiveWorkbook.XmlMaps("Root_Map").Export URL:=newFileName
Set objFile = objFSO.OpenTextFile(newFileName, ForReading)
Dim count
count = 0
Do Until objFile.AtEndOfStream
strLine = objFile.ReadLine
If count = 0 Then
strNewContents = strNewContents & "<?xml version=""1.0"" ?>" & vbCrLf
ElseIf count = 1 Then
strNewContents = strNewContents & "<Root xmlns=""http://tempuri.org/import.xsd"">" & vbCrLf
Else
strNewContents = strNewContents & strLine & vbCrLf
End If
count = count + 1
Loop
objFile.Close
Set objFile = objFSO.OpenTextFile(newFileName, ForWriting)
objFile.Write strNewContents
objFile.Close
End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)