从Web服务导入CSV数据到Excel

我写了一个简单的Web服务,返回大量的CSV数据。 我将使用Excel的“Data From Web”函数以表格forms将其导入到Excel中。

有没有办法让Excel自动分析作为导入操作的一部分返回到单个列中的csv字段?

目前我唯一的方法是先将数据导入到一个列中,然后编写VBA代码来select数据并使用TextToColumns对其进行TextToColumns 。 这感觉凌乱/容易出错。

我的另一种select是修改Web服务器以HTMLforms提供数据。 不过,我不愿意这样做,因为在每个csv字段周围添加标签会极大地影响返回的数据量。

亚当斯基,

这是我使用的东西。 我发现互联网上的核心,但不知道在哪里。

它所做的是打开一个制表符分隔的文件并读取Excel表格中的数据

 If Answer1 = vbYes Then 'I asked prior if to import a tab separated file Sheets("ZHRNL111").Select 'Select the sheet to dump the data On Error Resume Next With ActiveSheet If .AutoFilterMode Then .ShowAllData 'undo any autofilters End With Sheets("ZHRNL111").Cells.Clear 'remove any previous data On Error GoTo 0 Range("A1").CurrentRegion.Delete Fname = MyPath & "\LatestReports\Report-111.tsv" Open Fname For Input As #1 iRow = 1 Line Input #1, Record On Error Resume Next Do Until EOF(1) P = Split(Record, vbTab) For iCol = 1 To 14 Cells(iRow, iCol) = P(iCol - 1) Next iCol iRow = iRow + 1 Line Input #1, Record Loop On Error GoTo 0 Close 1 End If 

问候,

罗伯特·伊尔布林克

根据您正在运行的excel的版本,您应该能够在excel中打开.csv,并使用内置于Excel的文本到列的function。

此外,如果你可以修改你的CSV基于逗号分隔列“,”而不是标签的Excel将直接打开它,而不需要格式化。 但是我知道这有时会成为一个问题,这取决于你所导入的数据,因为如果数据中包含一个逗号,它必须在引号内。 根据我的经验,如果可能的话,最好的方法是在每个领域使用引文。

希望这可以帮助。

我实际上正在创build一个产品,在XML和JSON for Excel中这样做。 我知道逗号分隔在Excel中工作,有一些注意事项。 其中一个方法就是在“Data From Web”function的分隔符之间放置一些文本。 但仍然有问题。 我确实发现,尽pipe尺寸增加了,但XML是快速转身的最佳select。 我能够创build这个服务,并把我的项目经理随时可以更新的Excel文档。