繁体   English   中英

将CSV数据从Web服务导入Excel

[英]Import CSV data from web service into Excel

我写了一个简单的Web服务,返回大量的csv数据。 我将使用Excel的“来自Web的数据”功能以表格格式将其导入Excel。

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

目前,我这样做的唯一方法是首先将数据导入单个列,然后编写VBA代码以选择数据并使用TextToColumns将其TextToColumns 这感觉很乱/容易出错。

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

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

此外,如果您可以修改您的csv以基于逗号分隔列“,”而不是标签excel将直接打开它而无需格式化它。 我知道,根据您导入的数据,这有时会出现问题,因为如果数据包含逗号,则必须在引号内。 根据我的经验,最好的方法是尽可能在每个领域使用报价。

希望这可以帮助。

亚当斯基,

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

它的作用是打开一个制表符分隔文件并读取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

问候,

罗伯特伊尔布林克

我实际上正在创建一个产品,用于XML和JSON for Excel。 我知道逗号分隔确实在Excel中工作,但有一些注意事项。 解决这个问题的一种方法是在“数据来自Web”功能的分隔符之间放置一些“”。 然而,仍有问题。 我确实发现,尽管它的大小已经增加,但XML是快速转换的最佳选择。 我能够创建服务并将项目经理交给他可以随时更新的Excel文档。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM