データ定義を含む Excel シートを使用して、SQL Server の一括挿入で使用される .fmt ファイルを作成する C# プロジェクトの修正に取り組んでいます。
私の問題は、Excel ファイルの下部に空白行があることがあり、私が取り組んでいる C# パーサーが、データ定義を含む実際の行数よりも多い行数を検出することです。
そのため、fmt ファイルの 2 行目にはより多くの行があり、最後に到達して読み込もうとすると、一括挿入によって例外がスローされます。
たとえば、データを含む 50 行と空白行が 50 行しかありません。fmt ファイルの 2 行目には 100 が含まれます (1 行目は SQL Server バージョン用です)。3 行目から 52 行目は 50 行のデータ定義です。一括挿入が行 53 に到達しようとすると、列の例外の数が返されます。
C# パーサーは、Ace OleDB 12 を使用して Excel 97 形式のファイルに接続します。
SQL は次のとおりです。
var commandText = string.Format("SELECT * FROM [{0}$]", SpreadSheetName);
SQL コードに WHERE 句を追加して、空でない "A" 列を持つ行のみを選択しようとしましたが、うまくいきません。
SELECT * FROM [{0}$] WHERE [A] <> ''
コマンド テキストを SQL コードで拡張して、特定の条件が満たされた Excel からデータ行のみを抽出する方法はありますか?