多くの実験の後、望ましい結果を得ることができました。結局のところ、それはとてもシンプルに見えました。
このパッケージを作成する主な動機は、各ファイルを開き、いくつかの列を削除して残りの列を目的の形式に再配置するマクロを実行するという骨の折れるタスクを必要とする多数の .csv ファイルを持っていたことです。次に、Excel の確認ボックスをクリックした後、各ファイルを手動で保存する必要がありました。それはやりすぎでした。ワンクリックのアプローチが欲しかった。
私が行ったことの詳細な方法を示します。ソースとして複数の .csv ファイルからデータを取得し、必要な順序で目的の列のみを取得し、最終的に目的の出力を .csv ファイルとして新しい保存先に保存することに苦労している人々に役立つことを願っています。
簡単に言えば、私が使用しなければならなかったのは、使用することだけでした:
- For Eachループ コンテナー
- その中のデータ フロー タスク。
また、データ フロー タスク内では次のようになります。
- フラットファイルソース
- フラットファイルの宛先
- 2 つのフラット ファイル接続マネージャー- SourceとDestinationにそれぞれ 1 つずつ。
また、3 つの変数(プロジェクト スコープを持つすべての文字列データ型) を使用する必要がありました。これには、 CurrFileName、DestFilePath、およびFolderPathという名前を付けました。
.
詳細な手順:
変数にデフォルト値を設定します。
CurrFileName:一時的な目的で、.scv ファイル (test.csv) の 1 つの名前を指定するだけです。
FolderPath:ソース .csv ファイルが配置されているパスを指定します ( C:\SSIS\Data\Input )
DestFilePath:処理されたファイルを保存する宛先パスを指定します ( C:\SSIS\Data\Input\Output )
手順 1 : For Each ループ コンテナーを [制御フロー] 領域にドラッグします。
ステップ 2 : コレクションで、列挙子を「Foreach File Enumerator」として選択します。
ステップ 3 : [列挙子の構成] の下の [フォルダー:] で、.csv ファイルが配置されているフォルダー パス (私の場合はC:\SSIS\Data\Input ) を指定し、[ファイル:] で拡張子を指定します (この場合: *. csv)
ステップ 4 : [ファイル名の取得] で、[名前と拡張子] ラジオ ボタンを選択します。
ステップ 5 : 次に、[変数マッピング] セクションに移動し、変数を選択します (私の場合: User::CurrFileName .
ステップ 6 : ソース接続を作成します (これをSrcConnectionと呼びます)。[接続マネージャー] 領域を右クリックし、フラット ファイル接続マネージャーを選択し、.csv ファイルの 1 つを選択します (一時的な目的で)。[詳細設定] タブに移動し、保持する列に必要な正しいデータ型を指定します。[OK] をクリックして終了します。
ステップ 7 : 次に、この新しく作成されたソース フラット ファイル接続の [プロパティ] に移動し、[式] フィールドの横にある小さなボックスをクリックして、プロパティ式エディタを開きます。[Property] の下で [ConnectionString] を選択し、[式] スペースに@[User::FolderPath] + "\" + @[User::CurrFileName]と入力し、[OK] をクリックして終了します。
ステップ 8 : Windows エクスプローラーで、ソース フォルダー内に新しいフォルダーを作成します (この場合はC:\SSIS\Data\Input\Output)。
ステップ 9 : 宛先接続を作成します (これをDestConnectionと呼びましょう) - [接続マネージャー] 領域を右クリックし、フラット ファイル接続マネージャーを選択し、.csv ファイルの 1 つを選択します (一時的な目的で)。[詳細設定] タブに移動し、保持する列に必要な正しいデータ型を指定します。[OK] をクリックして終了します。
ステップ 10 : 次に、この新しく作成されたソース フラット ファイル接続の [プロパティ] に移動し、[式]フィールドの横にある小さなボックスをクリックして、[プロパティ式エディタ] を開きます。[Property] の下で [ConnectionString] を選択し、[式] スペースに@[User::DestFilePath] + @[User::CurrFileName]と入力し、[OK] をクリックして終了します。
ステップ 11 : データ フロー タスクを Foreach ループ コンテナーにドラッグします。
ステップ 12 : データ フロー タスクでフラット ファイル ソースをドラッグし、フラット ファイル接続マネージャーでソース接続 (この場合はSrcConnection ) を選択します。[列] で、すべての列の選択を解除し、必要な列のみを (必要な順序で) 選択し、[OK] をクリックして終了します。
ステップ 13 : フラット ファイルの宛先をデータ フロー タスクにドラッグし、フラット ファイル接続マネージャーで宛先接続 (この場合はDestConnection ) を選択します。次に、[マッピング] セクションに移動し、マッピングが目的の出力に従っているかどうかを確認します。[OK] をクリックして終了します。
ステップ 14 : それだけです。パッケージを実行します。問題なく実行されるはずです。
これが役に立てば幸いです:-)