将Excel工作表保存为xml会在某些行周围添加引号

4

我有一个包含xml脚本的工作表,大约有15列,70000行。 我正在尝试将此数据保存到一个.xml文件中。 我目前使用的代码是:

Sub saveXML()
    Dim GenerateSheet As Worksheet
    Set GenerateSheet = ThisWorkbook.Sheets("TestCase-")
    GenerateSheet.SaveAs Filename:="C:\Users\" & "TestCase-" + Format(Now(), "YYYYMMDD") & ".xml", FileFormat:=xlTextWindows
End Sub

这将其保存为.xml文件,但似乎会在文件中随机行周围添加引号,从而破坏了xml文件。

"<con:testCase xmlns:con=""http://eviware.com/soapui/config"" failOnError=""true"" failTestCaseOnErrors=""false"" keepSession=""false"" maxResults=""0"" name=""name"" searchProperties=""true"">"                                                                              
<con:settings/>                                                                             
"<con:testStep type=""request""  name=""TestStep_0001"">"                                                                               
<con:settings/>                                                                             
"<con:config xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xsi:type=""con:RequestStep"">"                                                                             
<con:interface>QuoteService</con:interface>                                                                             
<con:operation>NewRate</con:operation>                                                                              
"<con:request name=""NewRate - Request 1"" outgoingWss="""" incomingWss="""" timeout="""" sslKeystore="""" useWsAddressing=""true"" useWsReliableMessaging=""false"" wssPasswordType="""">"                                                                             
<con:settings>  

在工作表中,没有任何行周围有引号。如何控制或防止这种行为?
2个回答

0

我在其他类型的文件中看到了类似的结果,其中包含转义引号(")的行被引号括起来。

我建议对保存的文件进行某种形式的后处理,或者基于该文件创建一个XML映射:

ActiveWorkbook.XmlMaps.Add("[path to your file]", "[rootname]").Name = "[name of map]"

然后,您应该能够将该文件保存为XML文件,尽管我没有测试过。


0

被引用的标签无效。 (它们缺少结束标签且不是自闭合的)。在每个被引用的标签结尾添加 / 以使其自闭合。

示例(请注意末尾处的“/”)

<con:request name="NewRate - Request 1" outgoingWss="" incomingWss="" timeout="" sslKeystore="" useWsAddressing="true" useWsReliableMessaging="false" wssPasswordType=""/>

我能直接保存数据吗?如果我手动复制和粘贴数据,我可以完美地使用该文件。我想将数据保存为如果我已手动复制和粘贴信息到一个 .xml 文件。 - Ross
@Ross 所以是 Excel 弄乱了 XML? - litelite
保存着大约70000行脚本的工作表,我可以将其复制并粘贴到SublimeText中,手动将其保存为xml,脚本可以正常运行。只有当我尝试使用上面的vba脚本保存工作表时,它才会添加引号。但是我正在尝试通过按钮单击保存,这样我就不必手动执行此操作,因为我有大约8个这样的工作簿。 - Ross

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接