2011-10-07 41 views
6

Tôi đã viết một dịch vụ web đơn giản trả về khối lượng lớn dữ liệu csv. Tôi sẽ nhập mã này vào Excel theo định dạng bảng sử dụng chức năng "Dữ liệu từ web" của Excel.Nhập dữ liệu CSV từ dịch vụ web vào Excel

Có cách nào để Excel tự động phân tích cú pháp các trường csv được trả lại thành các cột riêng lẻ như một phần của thao tác nhập không?

Hiện tại, chỉ có nghĩa là tôi phải nhập dữ liệu vào một cột và sau đó viết mã VBA để chọn dữ liệu và chia nó bằng TextToColumns. Điều này cảm thấy lộn xộn/dễ bị lỗi.

Cách thay thế khác mà tôi có là sửa đổi máy chủ web để phân phát dữ liệu dưới dạng HTML. Tuy nhiên, tôi không muốn làm điều này khi thêm thẻ xung quanh mỗi trường csv sẽ ảnh hưởng rất lớn đến khối lượng dữ liệu được trả về.

+0

Phiên bản Excel nào? –

+0

@Clare: Excel 2007. – Adamski

Trả lời

1

Adamski,

Đây là thứ tôi sử dụng. Tôi tìm thấy lõi ở đâu đó trên internet, nhưng không biết ở đâu.

Những gì nó là nó sẽ mở ra một tab tập tin tách ra và đọc dữ liệu trong một bảng 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 

Kính trọng,

Robert Ilbrink

+0

Làm cách nào để phát với các dấu phân tách cột bên trong dữ liệu? nó phải được thoát bằng cách nào đó, và Split là không biết gì về điều đó, phải không? – zrz

1

Tùy thuộc vào phiên bản excel bạn đang chạy, bạn có thể mở tệp .csv bằng excel và sử dụng tính năng văn bản thành cột được tích hợp thành excel.

Ngoài ra, nếu bạn có thể sửa đổi csv thành các cột phân tách dựa trên dấu phẩy "," thay vì tab excel sẽ mở trực tiếp mà không cần phải định dạng nó. Tôi biết tuy nhiên điều này đôi khi có thể là một vấn đề tùy thuộc vào dữ liệu bạn đang nhập vì nếu dữ liệu chứa dấu phẩy thì phải nằm trong dấu ngoặc kép. Theo kinh nghiệm của tôi, cách tốt nhất là sử dụng các trích dẫn trên mọi lĩnh vực nếu có thể.

Hy vọng điều này sẽ hữu ích.

1

Tôi đang thực sự tạo ra một sản phẩm ngay bây giờ để làm điều này trong cả XML và JSON cho Excel. Tôi biết dấu phẩy phân cách không hoạt động trong Excel, với một số cảnh báo. Một cách xung quanh nó là đặt một số "" xung quanh văn bản ở giữa các dấu phân tách cho tính năng "Dữ liệu từ Web". Vẫn còn vấn đề với điều đó. Tôi đã thấy rằng mặc dù nó đã tăng kích thước, XML là lựa chọn tốt nhất để quay lại nhanh chóng. Tôi đã có thể tạo dịch vụ và giao cho người quản lý dự án của mình tài liệu Excel mà anh ta có thể cập nhật bất kỳ lúc nào.

+0

Cảm ơn. Tôi thực sự xây dựng một cái gì đó xung quanh một dịch vụ web phục vụ lên csv cuối cùng và sau đó dựa vào người dùng cuối thực hiện một "Text To Columns" hoạt động trên dữ liệu. Đó là xa lý tưởng cho số lượng lớn dữ liệu tôi nhập khẩu mặc dù. – Adamski

Các vấn đề liên quan