ExcelでマクロVBAを使用Excelファイルで日付を1枚に変換する必要があります。このため、私はすでにスクリプトを作成していますが、xmlの日付を正しく生成するには問題があります。最初の行にヘッダーが必要な場合は、データを含むすべての行を数式で読み取る必要があります。マクロVBA ExcelはXMLファイルの日付を作成します
Sub createXML()
Sheets("Sheet1").Select
FullPath = baseDirectory & projectName & "\xmlBatch\inputTest.xml"
Set objStream = CreateObject("ADODB.Stream")
objStream.Charset = "iso-8859-1"
objStream.Open
objStream.WriteText ("<?xml version='1.0' encoding='UTF-8'?>" & vbLf)
objStream.WriteText ("<y:input xmlns:y='http://www.test.com/engine/3'>" & vbLf)
objStream.WriteText (" <y:datas>" & vbLf)
objStream.WriteText (" <y:instance yid='theGeneralData'>" & vbLf)
objStream.WriteText ("" & vbLf)
objStream.WriteText ("<language yid='LANG_en' />" & vbLf)
objStream.WriteText ("<client yclass='Client'>" & vbLf)
objStream.WriteText (" <firstName>" & Cells(1, 1).Text & "</firstName>" & vbLf)
objStream.WriteText (" <lastName>" & Cells(1, 2).Text & "</lastName>" & vbLf)
objStream.WriteText (" <age>" & Cells(1, 3).Text & "</age>" & vbLf)
objStream.WriteText (" <civility yid='" & toYID(Cells(1, 4).Text) & "' />" & vbLf)
objStream.WriteText ("</client>" & vbLf)
objStream.WriteText ("" & vbLf)
objStream.WriteText (" </y:instance>" & vbLf)
objStream.WriteText (" </y:datas>" & vbLf)
objStream.WriteText ("</y:input>" & vbLf)
objStream.SaveToFile FullPath, 2
objStream.Close
End Sub
Excelデータは現在、この形式である:
しかし、今は私の出力は、これは、次のとおりです。
> <?xml version='1.0' encoding='UTF-8'?>
<y:input xmlns:y='http://www.test.com/engine/3'>
<y:datas>
<y:instance yid='theGeneralData'>
<language yid='LANG_en' />
<client yclass='Client'>
<firstName>firstName</firstName>
<lastName>lastName</lastName>
<age>age</age>
<civility yid='CIVILITY' />
</client>
</y:instance>
</y:datas>
</y:input>
私たちは、この出力を持っている必要があります:
> <?xml version='1.0' encoding='UTF-8'?>
<y:input xmlns:y='http://www.test.com/engine/3'>
<y:datas>
<y:instance yid='theGeneralData'>
<language yid='LANG_en' />
<client yclass='Client'>
<firstName>1</firstName>
<lastName>1</lastName>
<age>1</age>
<civility yid='CIVILITY' />
</client>
<client yclass='Client'>
<firstName>2</firstName>
<lastName>2</lastName>
<age>2</age>
<civility yid='CIVILITY' />
</client>
<client yclass='Client'>
<firstName>3</firstName>
<lastName>3</lastName>
<age>3</age>
<civility yid='CIVILITY' />
</client>
</y:instance>
</y:datas>
</y:input>
問題点は何ですか?コードの出力は私が見る限り正しいものです。 – Andreas
私の問題は、XMLファイルのデータにあるスクリプトがクライアント1,2,3 ..の新しいタグを作成しないということです。すべての行を読み込み、その間に新しいタグを作成するループを作るにはどうすればいいですか 各行に? –
申し訳ありませんが、私は今すぐに答える時間がありません、私は家に帰る必要があります。 – Andreas