1

Excel 2013 にインポートする必要がある大量の CSV データを生成する Web サービスがあります。

これを行う簡単な方法を見つけました:

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 がコンマ区切り形式を正しく解釈するようにしますか?

4

2 に答える 2

0

同様の問題があり、XML バリアントは Excel 2007 (35k 行) で逆シリアル化に時間がかかりすぎていました。

したがって、それはあなたのサービスであるため、POST と GET の両方の http オプションを実装?param=valueし、URL に追加してGET 要求のパラメーターをエンコードできますhttp://yourhost/service.do?AsOfDate=20140903。接続。

于 2014-09-03T20:16:49.860 に答える