1

マクロを作成する必要があります(これまでに作成したことはありません)。皆さんが私を正しい道に導くことができれば、それは本当にありがたいことです。

現在行っていること:ExcelにインポートしたマッピングXMLを作成しました。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

ありがとう!

4

1 に答える 1

2

私の同僚は実際にこれを手伝ってくれました。私がしたことを共有すべきだと思いました

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
于 2013-03-01T19:00:11.820 に答える