Excel VBA从Web服务导入带有发布数据的CSV

我有一个networking服务,产生大量的CSV数据,我需要导入到Excel 2013。

我find了直接的方法来做到这一点:

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”。 而不是“TEXT” 因此不允许对工作表中的输出至关重要的.TextFileCommaDelimiter属性。

有没有一种简单的方法来解决这个问题 – 即从Web服务中提取数据,使用后期数据,还要确保excel正确地解释逗号分隔的格式?

你能够改变Web服务提供的格式吗?

我已经以HTML格式( <table>...</table> )返回数据,然后执行您所需的操作 – 即使用Connection:"URL"

数据然后根据HTML表格标签自动格式化成Excel工作表。

有类似的问题,并且XML变体在Excel 2007(35k行)中反序列化的时间太长。

所以,既然它是你的服务,你可以实现POST和GET http选项,然后通过在URL中添加?param=value来为GET请求编码参数,例如: http://yourhost/service.do?AsOfDate=20140903 ,仍然使用“TEXT” 在连接。