3

.xls次の接続文字列を使用してファイルをインポートしています。

If _
    SetDBConnect( _
        "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & filepath & _
        ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""", True) Then

これは、私が遭遇したいくつかのExcelファイルを解析するためにうまく機能しています。ただし、この特定のファイルでは、にSELECT *入るとDataTable、データの列全体があり、Item Descriptionから欠落していDataTableます。なんで?

この特定のワークブックを、私が取り組んできた他のワークブックとは一線を画す可能性のあるいくつかの点を次に示します。

  • ブックには、最初の24行で構成されるフリーズペインがあります(ただし、これらの行はすべてに表示されますDataTable
  • ブック全体で奇妙なセルの強調表示が行われています

それはほとんどそれです。Item Description列が正しくインポートされない原因となるものは何も表示されません。そのデータは、を除いStringsて実際には特殊文字を持たないすべてのもので構成されてい&ます。さらに、この列の各データエントリは最大20文字です。何が起こっている?すべてのデータを取得する他の方法はありますか?元のファイルを使用する必要があり、これを最終的に自動化されたプロセスにしたいので、変更できないことに注意してください。

ありがとう!

4

2 に答える 2

1

最初の考え/質問: 欠落している列は最初の列ですか? 「商品説明」内のスペースを削除するとどうなりますか? ばかげた質問ですが、その列には列ヘッダーがありますか?

--編集 1 --

その列を削除すると、問題は別の列 (新しいインデックス 4) に移動しますか、それともファイルは完全です。これを尋ねる理由は、その列/ヘッダーのデータに固有の問題か、インデックス 4 のより一般的な問題です。

--編集 2 --

わかりました。その列であることがわかっているので、ヘッダーまたは行のいずれかであることがわかります。今のところ行に集中しましょう。そのアンパサンドから始めます。ダンプして、何が起こるか見てください。次に、行の最初の 50% を操作します。そのサブセットを削除すると何か影響がありますか? 行の後半の 50% はどうでしょうか。これらのサブセットの 1 つが結果を変更する場合、毎回選択を半分にすることで、個々の行 (できれば複数ではない) に絞り込むことができるはずです。

私の推測では、セルの 1 つであるユニコード文字またはその他のファンキーなものを見つけることになるでしょう。たぶん、数式があるか、あなたが言ったように、その「奇妙なセルの強調表示」のいくつかがあります。

于 2013-01-03T18:19:05.847 に答える
0

Excel アクセスを使用してから何年も経ちましたが、各シート内のテーブルとして機能するいくつかの領域にコンテンツをグループ化する Excel の問題を思い出します。問題のあるシートの内容をコピーして新しいワークブックに貼り付け、そのワークブックに接続してみてください。これが機能する場合は、領域についてもう少し調査できる可能性があります。

于 2013-01-03T18:25:07.587 に答える