Импорт данных CSV из веб-службы в Excel - PullRequest
6 голосов
/ 07 октября 2011

Я написал простой веб-сервис, который возвращает большие объемы данных CSV. Я буду импортировать это в Excel в табличном формате, используя функцию Excel «Данные из Интернета».

Есть ли способ заставить Excel автоматически анализировать поля csv, возвращаемые в отдельные столбцы, как часть операции импорта?

В настоящее время единственное средство, которое у меня есть для этого, - сначала импортировать данные в один столбец, а затем написать код VBA, чтобы выбрать данные и разделить их, используя TextToColumns. Это кажется грязным / подверженным ошибкам.

Другая альтернатива, которую я имею, состоит в том, чтобы изменить веб-сервер так, чтобы он возвращал данные в виде HTML. Однако я не хочу этого делать, так как добавление тегов вокруг каждого поля CSV сильно повлияет на объем возвращаемых данных.

Ответы [ 3 ]

1 голос
/ 12 октября 2011

Адамский,

Вот кое-что, что я использую. Я нашел ядро ​​где-то в интернете, но не знаю где.

Что он делает, открывает файл, разделенный табуляцией, и считывает данные в листе 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

С уважением,

Роберт Ильбринк

1 голос
/ 25 октября 2011

Я сейчас создаю продукт, чтобы сделать это как в XML, так и в формате JSON для Excel.Я знаю, запятая работает в Excel, с некоторыми оговорками.Одним из способов решения этой проблемы является наложение текста между символами-разделителями для функции «Данные из Интернета».Однако с этим еще есть проблемы.Я обнаружил, что, несмотря на увеличенный размер, XML был лучшим вариантом для быстрого разворота.Мне удалось создать сервис и передать менеджеру проекта документ Excel, который он мог обновить в любое время.

1 голос
/ 10 октября 2011

В зависимости от версии Excel, которую вы используете, вы сможете открыть CSV в Excel и использовать функцию преобразования текста в столбцы, встроенную в Excel.

Кроме того, если вы можете изменить свой CSV для разделениястолбцы, основанные на запятых "," вместо вкладок Excel открыли бы его напрямую без необходимости форматировать его.Однако я знаю, что иногда это может быть проблемой в зависимости от данных, которые вы импортируете, потому что если данные содержат запятую, они должны быть внутри кавычек.По моему опыту, лучше всего использовать цитаты в каждом поле, если это возможно.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...