Добрый день!
Есть таблица из нее собирается kml файл. Все работает. Но сохранить или пересохранить созданный файл в кодировке UTF-8 не получается. Пробовал по всякому. Не получилось. Нужны мысли как это можно сделать.
На всякий случай приведу пример кода, возможно можно отказаться от метода Print, в пользу аналогичного который можно использовать с ADODB.Stream
Заранее благодарен.
Есть таблица из нее собирается kml файл. Все работает. Но сохранить или пересохранить созданный файл в кодировке UTF-8 не получается. Пробовал по всякому. Не получилось. Нужны мысли как это можно сделать.
На всякий случай приведу пример кода, возможно можно отказаться от метода Print, в пользу аналогичного который можно использовать с ADODB.Stream
Заранее благодарен.
| Код |
|---|
Sub KML()
Dim fn, kontr, adr, marsh, coord, fnName, cel
fn = ThisWorkbook.Path & "\" & ThisWorkbook.Sheets("Styles").Cells(1, 2) & ".kml"
fnName = ThisWorkbook.Sheets("Styles").Cells(1, 2)
Open fn For Output As #1
Print #1, "<?xml version=" & Chr(34) & "1.0" & Chr(34) & " encoding=" & Chr(34) & "UTF-8" & Chr(34) & "?>"
Print #1, "<kml xmlns=""http://earth.google.com/kml/2.2"">"
Print #1, "<Document>"
Print #1, "<name>" & fnName & "</name>"
Print #1, "<description><![CDATA[]]></description>"
For Each cel In ThisWorkbook.Sheets("Styles").Range("A1:A50") '(ThisWorkbook.Sheets("Styles") a:a)
If cel.Value <> Empty Then
stl = cel
href = cel.Offset(0, 1)
Print #1, "<Style id=" & Chr(34) & stl & Chr(34) & ">"
Print #1, " <IconStyle>"
Print #1, " <Icon>"
Print #1, " <href>" & href & "</href>"
Print #1, " </Icon>"
Print #1, " </IconStyle>"
End If
Next
For Each ro In ThisWorkbook.Sheets("Route").Range(Cells(2, 2), Cells(Cells.SpecialCells(xlCellTypeLastCell).Row, 2))
If ro.Value <> Empty Then
kontr = ro
adr = ro.Offset(0, 1)
marsh = ro.Offset(0, 2)
coord = ro.Offset(0, 3)
Print #1, "<Placemark>"
Print #1, " <name>" & kontr & "</name>"
Print #1, " <description><![CDATA[<div dir="; ltr; ">" & adr & "<br><br>" & marsh & "</div>]]></description>"
Print #1, " <styleUrl>#style" & marh & "</styleUrl>"
Print #1, " <Point>"
Print #1, " <coordinates>" & coord & "</coordinates>"
Print #1, " </Point>"
Print #1, "</Placemark>"
End If
Next
Close #1
End Sub |