Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Экспорт XML в кодировке windows-1251 - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Экспорт XML в кодировке windows-1251 (Макросы/Sub)
Экспорт XML в кодировке windows-1251
and_evg Дата: Среда, 07.02.2018, 09:45 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 255
Репутация: 44 ±
Замечаний: 0% ±

Excel 2007
Добрый день.
Имеется файл данных с картой XML (прилагаемый файл)
Для экспорта в XML использую простенький код:

[vba]
Код
Sub ExportToXML()
    Dim strPath As String
    strPath = ThisWorkbook.Path & "\счет.xml"
    ThisWorkbook.XmlMaps("Файл_карта").Export URL:=strPath
End Sub
[/vba]

Проблема в том, что данный метод экспортирует в кодировке UTF, а для загрузки в Диадок (система электронного документооборота) требуется кодировка windows-1251.
Вопрос: Как произвести экспорт в XML в кодировке windows-1251.
Заранее спасибо.
К сообщению приложен файл: _XML.xls(66Kb)
 
Ответить
СообщениеДобрый день.
Имеется файл данных с картой XML (прилагаемый файл)
Для экспорта в XML использую простенький код:

[vba]
Код
Sub ExportToXML()
    Dim strPath As String
    strPath = ThisWorkbook.Path & "\счет.xml"
    ThisWorkbook.XmlMaps("Файл_карта").Export URL:=strPath
End Sub
[/vba]

Проблема в том, что данный метод экспортирует в кодировке UTF, а для загрузки в Диадок (система электронного документооборота) требуется кодировка windows-1251.
Вопрос: Как произвести экспорт в XML в кодировке windows-1251.
Заранее спасибо.

Автор - and_evg
Дата добавления - 07.02.2018 в 09:45
krosav4ig Дата: Среда, 07.02.2018, 16:59 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1558
Репутация: 650 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Добрый день. Можно попробовать такой костыль.
[vba]
Код
Sub ExportToXML()
    Dim strPath As String, sTmp As String
    strPath = ThisWorkbook.Path & "\счет.xml"
    ThisWorkbook.XmlMaps("Файл_карта").Export URL:=strPath
    DoEvents
    With CreateObject("ADODB.Stream")
        .Type = 2: .Charset = "utf-8"
        .Open: .LoadFromFile strPath: sTmp = .ReadText: .Close
        .Charset = "windows-1251": sTmp = Replace(sTmp, "UTF-8", "windows-1251")
        .Open: .WriteText sTmp: .SaveToFile strPath, 2: .Close
    End With
End Sub
[/vba]


(_)Õvõ(_)
 
Ответить
СообщениеДобрый день. Можно попробовать такой костыль.
[vba]
Код
Sub ExportToXML()
    Dim strPath As String, sTmp As String
    strPath = ThisWorkbook.Path & "\счет.xml"
    ThisWorkbook.XmlMaps("Файл_карта").Export URL:=strPath
    DoEvents
    With CreateObject("ADODB.Stream")
        .Type = 2: .Charset = "utf-8"
        .Open: .LoadFromFile strPath: sTmp = .ReadText: .Close
        .Charset = "windows-1251": sTmp = Replace(sTmp, "UTF-8", "windows-1251")
        .Open: .WriteText sTmp: .SaveToFile strPath, 2: .Close
    End With
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 07.02.2018 в 16:59
and_evg Дата: Четверг, 08.02.2018, 08:27 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 255
Репутация: 44 ±
Замечаний: 0% ±

Excel 2007
krosav4ig, Большое спасибо! Костыль помог.
Я так понимаю, что уже созданный XML файл открываете и в потоке (посредством ADODB) меняете кодировку?
И второй вопрос (просто нет возможности сейчас проверить). На работе стоят офисы от 2003 до 2013-го, граблей никаких не предвидится?
 
Ответить
Сообщениеkrosav4ig, Большое спасибо! Костыль помог.
Я так понимаю, что уже созданный XML файл открываете и в потоке (посредством ADODB) меняете кодировку?
И второй вопрос (просто нет возможности сейчас проверить). На работе стоят офисы от 2003 до 2013-го, граблей никаких не предвидится?

Автор - and_evg
Дата добавления - 08.02.2018 в 08:27
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Экспорт XML в кодировке windows-1251 (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2018 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!