【发布时间】:2014-01-10 09:41:52
【问题描述】:
我有一个生成大量 CSV 数据的 Web 服务,我需要将其导入 excel 2013。
我找到了直接的方法:
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & URL, Destination:=Cells(1, 1))
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.WebPreFormattedTextToColumns = True
.TextFilePromptOnRefresh = False
.TextFilePlatform = 850
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
.WorkbookConnection.Delete
End With
但是,我还需要向 Web 服务发送带有参数的有效负载,以便过滤它返回的数据。
我发现这样做的唯一方法是使用 .PostText 属性,但这要求连接是“URL;”而不是“文本;”因此不允许 .TextFileCommaDelimiter 属性,该属性对工作表中的输出至关重要。
是否有一种直接的方法来解决这个问题 - 即从 Web 服务中提取数据,使用发布数据,同时确保 excel 正确解释逗号分隔格式?
【问题讨论】:
-
你能分享网络服务链接吗?
-
我不能,我害怕。它在专用网络上。
-
如果您将 Web 服务设为 GET 而不是 POST,那么您可以通过 URL 传递参数。顺便说一句,谢谢你的提示。
标签: vba excel csv excel-web-query