Экспорт в XML с использованием VBA – Коррекция заголовка

Я признаю, что то, что я делаю, возможно, является немного сложной задачей и что могут быть более технически опрятные способы сделать это, о которых я не думал.

У меня есть лист excel, создающий структуру XML с помощью жестоких методов.

В основном ячейки, идущие вниз по столбцу A, являются (как текст):

<?xml version="1.0" encoding="UTF-8" ?> <ReportingInfo Version="1.0" CreationDate="2017-03-14T11:02:49"> <RecordInfo> <FilingType>INIT</FilingType> </RecordInfo> 

У меня тогда есть немного кода vba для экспорта листа в виде XML-файла:

 Public Sub ExportToXML2() Dim wbkExport As Workbook Dim shtToExport As Worksheet Dim i As String i = Date i = Replace(i, "/", "") Set shtToExport = ThisWorkbook.Worksheets("Output") 'Sheet to export as XML Set wbkExport = Application.Workbooks.Add shtToExport.Copy Before:=wbkExport.Worksheets(wbkExport.Worksheets.Count) Application.DisplayAlerts = False wbkExport.SaveAs Filename:="C:\Projects\XML_Report_" & i & ".xml", FileFormat:=xlCSV Application.DisplayAlerts = True wbkExport.Close SaveChanges:=False Workbooks.Open "C:\Projects\XML_Report_" & i & ".xml" End Sub 

Что создает XML-файл, который выглядит так:

 "<?xml version=""1.0"" encoding=""UTF-8"" ?>" "<ReportingInfo State=""GB"" Version=""1.0"" CreationDate=""2017-03-14T11:02:49"">" <RecordInfo> <FilingType>INIT</FilingType> </RecordInfo> 

Любые идеи, почему появляются дополнительные кавычки?

Большое спасибо.

Когда вы сохраняете CSV или Text, Excel анализирует текст и заключает в кавычки все, что содержит кавычки. Это твоя проблема. Чтобы этого избежать, создайте свой XML, сохранив его как текстовый поток (желательно unicode), как здесь.

Данные на выходе, a1: a6:

 <?xml version="1.0" encoding="UTF-8" ?> <ReportingInfo Version="1.0" CreationDate="2017-03-14T11:02:49"> <RecordInfo> <FilingType>INIT</FilingType> </RecordInfo> </ReportingInfo> 

Код:

 Public Sub ExportToXML2() Dim fso As Object, txt As Object Dim lines As Long Dim i As String i = Date i = Replace(i, "/", "") Set fso = CreateObject("Scripting.FileSystemObject") Set txt = fso.CreateTextFile("C:\Projects\XML_Report_" & i & ".xml", True) With ThisWorkbook.Worksheets("Output") 'Sheet to export as XML For lines = 1 To .UsedRange.Rows.Count txt.WriteLine (.Cells(lines, 1)) Next End With txt.Close Workbooks.Open "C:\Projects\XML_Report_" & i & ".xml" End Sub 

Результат:

 <?xml version="1.0" encoding="UTF-8" ?> <ReportingInfo Version="1.0" CreationDate="2017-03-14T11:02:49"> <RecordInfo> <FilingType>INIT</FilingType> </RecordInfo> </ReportingInfo> 

Откройте xml в Excel:

 /ReportingInfo /@CreationDate /@Version /RecordInfo/FilingType 14/03/17 11:02 1 INIT 
  • Ошибка -1072896636 «Запрещено DTD» при открытии xml-файла в Excel, что мне делать?
  • Excel с xml -> источником и руководством для тегов и атрибутов
  • Блокировка (отключить редактирование) Ячейки XML при открытии с помощью Excel
  • ActionScript чтение большого файла xlsx
  • Получение формата ячейки в файле excel с использованием C #
  • Ошибка импорта XML в Excel 2007 из-за недопустимого символа
  • Числовая точность в Excel 2007 при сохранении как XML
  • Использование Excel для хранения данных лучше или XML для автоматизации Тестирование
  • Поиск в диапазоне времени
  • Проблемы с кодировкой Excel в XML с французскими словами
  • XSL - изменить XML-экспорт в Excel, чтобы добавить смелый стиль динамически
  • Давайте будем гением компьютера.