excel vba 制作 kml 文档时,如何写入有引号的字符串

朋友布置作业,需要把一系列地点坐标转换成奥维互动地图能标识的kml文件(文本文件)。

很久没写vba代码了。
 

在把字符串写入kml文件的过程中,发现写入需要用 print #filenumber, str 的格式,而不是

write #filenumber, str 的格式。
用write #filenumber, str  的格式时,文本文档中会会得到额外的双引号。但是在vba的立即窗口中,输出是正常的(没有多余双引号的)。

代码如下。

可以尝试把 print 改为 write, 看看生成的kml文件有何不同?

Option Explicit
Public Sub coords2kml()
'convert coordinates to kml for 奥维互动地图
Dim kml_head As String 'unchanged text at begining of file
Dim kml_tail As String 'unchanged text at end of file
Dim kml_line As String 'line matches with individual coordinates

Dim name_cun As String 'jiezhen-cunwei-cun
Dim longtitude_cun As String
Dim latitude_cun As String

Dim kml_filename As String

kml_filename = "kml_test.kml"

kml_head = "<?xml version=" & Chr(34) & "1.0" & Chr(34) & " encoding=" & Chr(34) & "UTF-8" & Chr(34) & "?>" & Chr(13) & _
"<kml xmlns=" & Chr(34) & "http://www.opengis.net/kml/2.2" & Chr(34) & " xmlns:gx=" & Chr(34) & "http://www.google.com/kml/ext/2.2" & Chr(34) & " xmlns:kml=" & Chr(34) & "http://www.opengis.net/kml/2.2" & Chr(34) & " xmlns:atom=" & Chr(34) & "http://www.w3.org/2005/Atom" & Chr(34) & ">" & Chr(13) & _
"<Document>"
kml_tail = "</Document>" & Chr(13) & "</kml>"

'create kml file
Open kml_filename For Append As #1
    Print #1, kml_head
    Print #1, kml_tail

Close #1


End Sub

希望的输出结果如下:

<?xml version="1.0" encoding="UTF-8"?> <kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom"> <Document>
</Document> </kml>

而把上述代码中的 print 改为 write  时,结果是这样的,注意其中多余的双引号:

"<?xml version=""1.0"" encoding=""UTF-8""?> <kml xmlns=""http://www.opengis.net/kml/2.2"" xmlns:gx=""http://www.google.com/kml/ext/2.2"" xmlns:kml=""http://www.opengis.net/kml/2.2"" xmlns:atom=""http://www.w3.org/2005/Atom""> <Document>"
"</Document> </kml>"

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值