Как генерировать XML от макроса Excel VBA?

Так, у меня есть набор содержания, которое было поставлено нам в форме электронных таблиц Excel. Я должен взять то содержание и продвинуть его в другую систему. Другая система берет свой вход от XML-файла. Я мог сделать все это вручную (и доверять мне, управление не имеет никакой проблемы, заставляя меня сделать это!), но я надеюсь, что существует простой способ записать макрос Excel, который генерировал бы XML, в котором я нуждаюсь вместо этого. Это походит на лучшее решение меня, поскольку это - задание, которое должно будет регулярно повторяться (мы будем получать МНОГО содержания в листах Excel), и просто имеет смысл иметь пакетный инструмент, который делает это для нас.

Однако я никогда не экспериментировал с генерацией XML из электронных таблиц Excel прежде. У меня есть немного знания VBA, но я - новичок к XML. Я предполагаю свою проблему в поиске с помощью Google, это - то, что я даже не знаю что к Google для. Кто-либо может дать мне немного направления для запущения меня? Моя идея походит на правильный способ приблизиться к этой проблеме, или я пропускаю что-то очевидное?

Спасибо StackOverflow!

6
задан SuperNES 4 May 2010 в 15:40
поделиться

2 ответа

Для получения справки см. Экспорт Excel в XML в VBA .

2
ответ дан 8 December 2019 в 18:33
поделиться

Возможно, вы захотите рассмотреть ADO - рабочий лист или диапазон можно использовать в качестве таблицы.

Const adOpenStatic = 3
Const adLockOptimistic = 3
Const adPersistXML = 1

Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")

''It wuld probably be better to use the proper name, but this is
''convenient for notes
strFile = Workbooks(1).FullName

''Note HDR=Yes, so you can use the names in the first row of the set
''to refer to columns, note also that you will need a different connection
''string for >=2007
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFile _
        & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";"


cn.Open strCon
rs.Open "Select * from [Sheet1$]", cn, adOpenStatic, adLockOptimistic

If Not rs.EOF Then
    rs.MoveFirst
    rs.Save "C:\Docs\Table1.xml", adPersistXML
End If

rs.Close
cn.Close
8
ответ дан 8 December 2019 в 18:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: