web-dev-qa-db-ja.com

SSIS Excel宛先で空の行を回避する方法

SSISを使用してExcelにエクスポートするときに空の行を回避する方法はありますか?次に、1つのデータフロータスクの簡単な例を示します。

OLE DBソース:

OLE DB Source:

データ変換(迷惑なUNICODE /非UNICODE取引を処理するため):

Data Conversion

最終的な結果は、Excel接続マネージャーの「FirstRowHasColumnName」の値に応じて、以下の2つのいずれかになります。空白の行に注意してください。

output 1

output 2

2
Henry Lee

2008 R2インストールとExcel 2010からSSISでこれをテストしました。

接続マネージャーでExcel 97-2003出力形式を使用して、最初の行にヘッダー名、次に空白、次にデータの場合を再現できました。しかし、「最初の行には列名があります」を変更すると、別の効果がありました。ヘッダー行はまだありましたが、空白はありませんでした。

Excel 2007形式を使用して、ヘッダー行を抑制することもできませんでしたが、どちらの場合も、空白行は出力されませんでした。

ヘッダー行が必要かどうか、または使用している出力形式は言いませんでした。私のテストに基づいて、あなたは97-2003を使用しているので、あなたがしなければならないかもしれないすべては2007フォーマットに切り替えることです。

Excel Destinationの直前にData Viewerをアタッチすると、データ行のみが表示されるため、Destinationコンポーネントによって余分な空白が追加されます。つまり、Destinationが空白を取り除くように構成できない場合、運が悪かったことになります。

ただし、このコンポーネントの動作は非常にバグが多いようで、これをまったく機能させるためのセットアッププロセス全体が非常に面倒だったので、出力をフラットファイル変換先などのより安定したコンポーネントに切り替えることを強く検討します。 Excelでも直接開くことができるCSV。

2
Jon Seigel

私は最近同様の問題に遭遇しましたが、うまくいったのは、同じテーブル構造の空のファイルをコピーするファイルシステムタスクを追加して、データフロータスクをだますことでした。これが私の3つのステップの解決策です。

  1. Excelの宛先とパラメーター化された接続文字列を使用してデータフロータスクを作成しました。

  2. 「Default folder」という名前のフォルダーを作成し、ステップ1で作成した空のExcel宛先をコピーしました。

  3. ファイルシステムタスクを追加して、[デフォルトフォルダー]から指定した宛先フォルダーにデフォルトファイルをコピーし、ファイルが存在する場合は上書きします。
1

同じ問題(SSIS 2012およびExcel 2007形式)に遭遇しました。元のヘッダー行、空の行の束、そしてエクスポートされたSSISデータがありました。

タイトル行を除くスプレッドシート全体を選択し、選択を削除することで問題を解決しました(右クリックして[削除]を選択)。これにより、空白のセルの残された書式が削除されているはずです。次に、選択範囲をセルA1に配置し、空のxlsxファイルを保存して、SSISが2行目に出力の書き込みを開始します。

0
Bach

挿入されるExcelの空白行で同じ問題が発生しました。同じヘッダーの新しいExcelファイルを作成してしまいました。どういうわけか、古いファイルには、空白スペースを削除するために修正できる私には見えないいくつかの書式が設定されていました。

0
Ajita