Microsoft Excelファイルからデータを抽出する例(DataStage® )
Microsoft Excel ファイルからデータを抽出するサンプル・ジョブを作成できます。 この例では、Sequential File ステージが出力ステージとして使用されています。 出力の作成には、他の任意の出力ステージを使用できます。
例のファイルを取得するには、IS_install\Clients\Samples\Connectors\UnstructuredData_Samples.zip ファイルを解凍します。
例 1: Microsoft Excel ファイルの範囲からデータを抽出する
Excelステージを使用して、Microsoft Excelスプレッドシートの範囲からデータを取得するジョブを作成します。
この例では、ある組織で働く従業員の詳細を含むMicrosoft ExcelのサンプルファイルEmployee1.xlsを使用します。 このサンプル・ファイルには3つのスプレッド・シートがある:Sheet1、Sheet2、Sheet3.Sheet1 には、組織内の各部門の従業員に関する情報が含まれています。 Sheet2 および Sheet3 はブランクです。 この例では、部門 B01 で働いている従業員に関するビジネス情報のみを抽出します。
- Excel ファイル内の範囲からデータを抽出するには:
- 1つのExcelステージと1つのSequential Fileを含むジョブを作成します。
- エクセルのステージをダブルクリックします。
- 設定ウィンドウで、Microsoft Excel入力ファイルEmployee1.xlsの完全なファイルパスを指定します。
- 範囲オプションリストから、データ範囲全体を指定を選択して、特定の範囲のデータを抽出します。
- の中に範囲式フィールド、指定Sheet1!A16:K28。
- 列のヘッダーフィールドから、データ範囲の最初の行を選択します。 データ範囲の最初の行が選択されると、最初の行はヘッダーとみなされ、エクセルのステージは2番目の行から抽出を開始する。
- Microsoft ExcelのE(電話番号)とI(生年月日)の列の横にあるチェックボックスをオフにします。
- インポートとOKをクリックします。 インポートをクリックすると、コンフィギュレーションウィンドウの右下にあるマップペインが更新されます。
- EMP_NO列のタイプを整数に変更し、OKをクリックする。 ページで、
- Sequential File ステージをダブルクリックします。 上のプロパティページで、出力ファイルを作成するパスとファイル名を指定します。OutputOfExample1.txtをクリックし、わかりました。
- ジョブを保存します。 これでジョブをコンパイルして実行できる。
次の表は、さまざまな部門の従業員情報を含む Microsoft Excel 入力ファイル内の情報を示しています。
EMP NO | 名 | MID INIT | 姓 | PHONE NO | HIRE DATE | JOB | SEX | BIRTH DATE |
---|---|---|---|---|---|---|---|---|
Employees in DEPT_A00 | ||||||||
10 | CHRISTINE | I | HAAS | 3978 | 1/1/1995 | PRES | F | 8/24/1963 |
20 | MICHAEL | L | THOMSON | 3476 | 10/10/2003 | MANAGER | M | 2/2/1976 |
30時間まで | SALLY | A | KWAN | 4738 | 4/5/2005 | MANAGER | F | 5/11/1971 |
50 | JOHN | B | GEYER | 6789 | 8/17/1979 | MANAGER | M | 9/15/1955 |
Employees in DEPT_B01 | ||||||||
60 | IRVING | F | STERN | 6423 | 9/14/2003 | MANAGER | M | 7/7/1975 |
70 | EVA | D | PULASKI | 7831 | 9/30/2003 | MANAGER | F | 5/26/2003 |
90 | EILEEN | W | HENDERSON | 5498 | 8/15/2000 | MANAGER | F | 5/15/1971 |
100 | THEODORE | Q | SPENSER | 742 | 6/19/2000 | MANAGER | M | 12/18/1980 |
110 | VINCENZO | G | LUCCHESSI | 3490 | 5/16/1988 | SALESREP | M | 11/5/1958 |
120 | SEAN | O'CONNELL | 2167 | 12/51993 | CLERK | M | 10/18/1972 | |
130 | DELORES | M | QUINTANA | 4578 | 7/28/2001 | ANALYST | F | 9/15/1955 |
140 | HEATHER | A | NICHOLLS | 1793 | 12/15/2006 | ANALYST | F | 1/19/1976 |
150 | BRUCE | ADAMSON | 4510 | 2/12/2002 | デザイナー | M | 5/17/1972 | |
160 | ELIZABETH | R | PIANKA | 3782 | 10/11/2006 | デザイナー | F | 4/12/1980 |
1770 | MASATOSHI | J | YOSHIMURA | 2890 | 9/15/1999 | デザイナー | M | 1/5/1981 |
180 | MARILYN | S | SCOUTTEN | 1682 | 7/7/2003 | デザイナー | F | 2/21/1978 |
ジョブの実行後、OutputOfExample1.txt結果を表示するにはファイルを参照してください。
"60","IRVING","F","STERN","2003-09-14","MANAGER ","M","72250","500"
"70","EVA","D","PULASKI","2005-09-30","MANAGER ","F","96170","700"
"90","EILEEN","W","HENDERSON","2000-08-15","MANAGER ","F","89750","600"
"100","THEODORE","Q","SPENSER","2000-06-19","MANAGER ","M","86150","500"
"110","VINCENZO","G","LUCCHESSI","1988-05-16","SALESREP","M","66500","900"
"120","SEAN"," ","O'CONNELL","1993-12-05","CLERK ","M","49250","600"
"130","DELORES","M","QUINTANA","2001-07-28","ANALYST ","F","73800","500"
"140","HEATHER","A","NICHOLLS","2006-12-15","ANALYST ","F","68420","600"
"150","BRUCE"," ","ADAMSON","2002-02-12","DESIGNER","M","55280","500"
"160","ELIZABETH","R","PIANKA","2006-10-11","DESIGNER","F","62250","400"
"170","MASATOSHI","J","YOSHIMURA","1999-09-15","DESIGNER","M","44680","500"
"180","MARILYN","S","SCOUTTEN","2003-07-07","DESIGNER","F","51340","500"
例 2: 複数の Microsoft Excel シートからのデータの抽出
この例では、サンプルのMicrosoft ExcelファイルEmployee2.xlsを使用します。 このサンプル・ファイルには、DEPT A00、DEPT B01、DEPT C01、および DEPT D01 というシートがあります。 各シートには、部門内の従業員に関する情報が含まれています。
各シートのデータ構造は類似しています。 各シートには EMP NO、FIRST NAME、MID INIT、LAST NAME、PHONE NO、HIRE DATE、JOB、および ADDRESS という列があり、3 行目はヘッダーです。 ただし、各シートの行数は異なります。
- 複数のファイルからデータを抽出するには:
- 設定ウィンドウで、Microsoft Excel入力ファイルEmployee2.xlsの完全なファイルパスを指定します。
- 「範囲オプション」から、「開始行の指定」を選択します。
- 「範囲式」フィールドに、A3:H3 を指定します。 ステージがSpecify first rowオプションで実行され、範囲式に特定のシート名が指定されていない場合、ジョブは最後の行を見つけ、実行時に最後の行まで行を抽出します。
- 列のヘッダーで、データ範囲の最初の行を選択する。
- 上の財産タブで、プロパティの横にあるチェックボックスを選択して、プロパティ値を抽出します。 この例では、プロパティーとして「シート名」を選択します。
- インポート をクリックします。 ステージはカラムマッピングを生成する。
- を作るためにSheetNnameリストの最初の列を選択するには、SheetName列をクリックして上までSheetName列はリストの最初の列です。
- マッピング テーブルで、ハイパーリンクを含む入力ファイルの ADDRESS 列に行を挿入します。
- クリック入れる
- 「Excel 項目」オプションで、列 ADDRESS を選択します。
- 新しい行のインポートオプションセルで、ハイパーリンクアドレスを選択する。
- 新しい行に DataStage 列名 EMAIL_ADDRESS を指定します。 その後、「OK」をクリックします。
- タブをクリックして、データ型やその他の属性を変更します。
- EMP_NO 列のタイプを「整数」に変更します。 OKをクリックします。
- 「プロパティー」ページで、出力ファイルを作成するパスを指定し、その後にファイル名 OutputOfExample2.txt を指定します。 OKをクリックします。
- ジョブを保存します。 これでジョブをコンパイルして実行できる。
各部門の従業員情報を異なるシートに格納したMicrosoft Excelファイルの入力例。 全シートからの従業員データのジョブ・エクストラクトは、以下の表の形で表示されます:
EMP NO | 名 | MID INIT | 姓 | PHONE NO | HIRE DATE | JOB | SEX | BIRTH DATE |
---|---|---|---|---|---|---|---|---|
10 | CHRISTINE | I | HAAS | 3978 | 1/1/1995 | PRES | F | 8/24/1963 |
20 | MICHAEL | L | THOMSON | 3476 | 10/10/2003 | MANAGER | M | 2/2/1976 |
30時間まで | SALLY | A | KWAN | 4738 | 4/5/2005 | MANAGER | F | 5/11/1971 |
50 | JOHN | B | GEYER | 6789 | 8/17/1979 | MANAGER | M | 9/15/1955 |
EMP NO | 名 | MIDI NIT | 姓 | PHONE NO | HIRE DATE | JOB | SEX | BIRTH DATE |
---|---|---|---|---|---|---|---|---|
60 | IRVING | F | STERN | 6423 | 9/14/2003 | MANAGER | M | 7/7/1975 |
70 | EVA | D | PULASKI | 7831 | 9/30/2003 | MANAGER | F | 5/26/2003 |
90 | EILEEN | W | HENDERSON | 5498 | 8/15/2000 | MANAGER | F | 5/15/1971 |
100 | THEODORE | Q | SPENSER | 742 | 6/19/2000 | MANAGER | M | 12/18/1980 |
110 | VINCENZO | G | LUCCHESSI | 3490 | 5/16/1988 | SALESREP | M | 11/5/1958 |
120 | SEAN | O'CONNELL | 2167 | 12/51993 | CLERK | M | 10/18/1972 | |
130 | DELORES | M | QUINTANA | 4578 | 7/28/2001 | ANALYST | F | 9/15/1955 |
140 | HEATHER | A | NICHOLLS | 1793 | 12/15/2006 | ANALYST | F | 1/19/1976 |
150 | BRUCE | ADAMSON | 4510 | 2/12/2002 | デザイナー | M | 5/17/1972 | |
160 | ELIZABETH | R | PIANKA | 3782 | 10/11/2006 | デザイナー | F | 4/12/1980 |
1770 | MASATOSHI | J | YOSHIMURA | 2890 | 9/15/1999 | デザイナー | M | 1/5/1981 |
180 | MARILYN | S | SCOUTTEN | 1682 | 7/7/2003 | デザイナー | F | 2/21/1978 |
ジョブが実行された後、次の結果を含むOutputOfExample2.txtファイルを開くことができます。
"DEPT A00","10","CHRISTINE","I","HAAS","3978","1995-01-01","PRES ","CHRISTINE HAAS","mailto:CHRISTINE%[email protected]"
"DEPT A00","20","MICHAEL","L","THOMPSON","3476","2003-10-10","MANAGER ","MICHAEL THOMPSON","mailto:MICHAEL%[email protected]"
"DEPT A00","30","SALLY","A","KWAN","4738","2005-04-05","MANAGER ","SALLY KWAN","mailto:SALLY%[email protected]"
"DEPT A00","50","JOHN","B","GEYER","6789","1979-08-17","MANAGER ","JOHN GEYER","mailto:JOHN%[email protected]"
"DEPT B01","60","IRVING","F","STERN","6423","2003-09-14","MANAGER ","IRVING STERN","mailto:IRVING%[email protected]"
"DEPT B01","70","EVA","D","PULASKI","7831","2005-09-30","MANAGER ","EVA PULASKI","mailto:EVA%[email protected]"
"DEPT B01","90","EILEEN","W","HENDERSON","5498","2000-08-15","MANAGER ","EILEEN HENDERSON","mailto:EILEEN%[email protected]"
"DEPT B01","100","THEODORE","Q","SPENSER","972","2000-06-19","MANAGER ","THEODORE SPENSER","mailto:THEODORE%[email protected]"
"DEPT B01","110","VINCENZO","G","LUCCHESSI","3490","1988-05-16","SALESREP","VINCENZO LUCCHESSI","mailto:VINCENZO%[email protected]"
"DEPT B01","120","SEAN"," ","O'CONNELL","2167","1993-12-05","CLERK ","SEAN O'CONNELL","mailto:SEAN%20O'[email protected]"
"DEPT B01","130","DELORES","M","QUINTANA","4578","2001-07-28","ANALYST ","DELORES QUINTANA","mailto:DELORES%[email protected]"
"DEPT B01","140","HEATHER","A","NICHOLLS","1793","2006-12-15","ANALYST ","HEATHER NICHOLLS","mailto:HEATHER%[email protected]"
"DEPT B01","150","BRUCE"," ","ADAMSON","4510","2002-02-12","DESIGNER","BRUCE ADAMSON","mailto:BRUCE%[email protected]"
"DEPT B01","160","ELIZABETH","R","PIANKA","3782","2006-10-11","DESIGNER","ELIZABETH PIANKA","mailto:ELIZABETH%[email protected]"
"DEPT B01","170","MASATOSHI","J","YOSHIMURA","2890","1999-09-15","DESIGNER","MASATOSHI YOSHIMURA","mailto:MASATOSHI%[email protected]"
"DEPT B01","180","MARILYN","S","SCOUTTEN","1682","2003-07-07","DESIGNER","MARILYN SCOUTTEN","mailto:MARILYN%[email protected]"
"DEPT C01","190","JAMES","H","WALKER","2986","2004-07-26","DESIGNER","JAMES WALKER","mailto:JAMES%[email protected]"
"DEPT C01","200","DAVID"," ","BROWN","4501","2002-03-03","DESIGNER","DAVID BROWN","mailto:DAVID%[email protected]"
"DEPT C01","210","WILLIAM","T","JONES","942","1998-04-11","DESIGNER","WILLIAM JONES","mailto:WILLIAM%[email protected]"
"DEPT C01","220","JENNIFER","K","LUTZ","672","1998-08-29","DESIGNER","JENNIFER LUTZ","mailto:JENNIFER%[email protected]"
"DEPT C01","230","JAMES","J","JEFFERSON","2094","1996-11-21","CLERK ","JAMES JEFFERSON","mailto:JAMES%[email protected]"
"DEPT C01","240","SALVATORE","M","MARINO","3780","2004-12-05","CLERK ","SALVATORE MARINO","mailto:SALVATORE%[email protected]"
"DEPT C01","250","DANIEL","S","SMITH","961","1999-10-30","CLERK ","DANIEL SMITH","mailto:DANIEL%[email protected]"
"DEPT C01","260","SYBIL","P","JOHNSON","8953","2005-09-11","CLERK ","SYBIL JOHNSON","mailto:SYBIL%[email protected]"
"DEPT D01","270","MARIA","L","PEREZ","9001","2006-09-30","CLERK ","MARIA PEREZ","mailto:MARIA%[email protected]"
"DEPT D01","280","ETHEL","R","SCHNEIDER","8997","1997-03-24","OPERATOR","ETHEL SCHNEIDER","mailto:ETHEL%[email protected]"
"DEPT D01","290","JOHN","R","PARKER","4502","2006-05-30","OPERATOR","JOHN PARKER","mailto:JOHN%[email protected]"
"DEPT D01","300","PHILIP","X","SMITH","2095","2002-06-19","OPERATOR","PHILIP SMITH","mailto:PHILIP%[email protected]"
"DEPT D01","310","MAUDE","F","SETRIGHT","3332","1994-09-12","OPERATOR","MAUDE SETRIGHT","mailto:MAUDE%[email protected]"
"DEPT D01","320","RAMLAL","V","MEHTA","9990","1995-07-07","FIELDREP","RAMLAL MEHTA","mailto:RAMLAL%[email protected]"
"DEPT D01","330","WING"," ","LEE","2103","2006-02-23","FIELDREP","WING LEE","mailto:WING%[email protected]"
"DEPT D01","340","JASON","R","GOUNOT","5698","1977-05-05","FIELDREP","JASON GOUNOT","mailto:JASON%[email protected]"
例 3: Microsoft Excel ファイル内の異なるデータ構造を持つ複数の範囲からのデータの抽出
この例では、サンプルのMicrosoft ExcelファイルEmployee3.xlsを使用します。 このサンプル・ファイルには、異なるデータ構造を持つ Departments および Employees という 2 つのスプレッドシートがあります。
この例では、Excel ステージに 2 つの出力リンクがあります。 Departments シートから最初のリンクにデータを抽出し、Employees シートから 2 番目のリンクにデータを抽出します。
- 異なるデータ構造を抽出するには:
- 1つのExcelステージと2つのSequential Fileを含むジョブを作成します。 リンクの名前を「部門」や「従業員」に変更できます。
- エクセルのステージをダブルクリックします。 設定ウィンドウで、Microsoft Excel入力ファイルEmployee3.xlsの完全なファイルパスを指定します。
- Departments スプレッドシートから抽出するデータを指定し、以下のサブステップを完了して列マッピングを生成します。
- からリンクリストボックス、選択部門。
- から範囲オプションリスト、選択範囲全体を指定する。
- 「範囲式」フィールドから、以下を指定します。Departments!A2:C6 .
- 列のヘッダーから、データ範囲の最初の行を選択します。
- 「インポート」をクリックし、「OK」をクリックします。
- Employees スプレッドシートから抽出するデータを指定し、以下のサブステップを実行して列マッピングを生成します。
- 「リンク」リスト・ボックスから、Employees を選択します。
- から範囲オプションリスト、範囲全体を指定する。
- 「範囲式」フィールドから、以下を指定します。Employees!A2:L34.
- 「列ヘッダー」から、「データ範囲の最初の行」を選択します。
- 「インポート」をクリックし、「OK」をクリックします。
- 「出力」ページで、出力名として Employees リンクを選択します。
- Columnsページで、EMP_NO列のデータ型を整数に変更し、OKをクリックします。
- 最初のSequential FileステージOutput_1出力ファイルを作成するパスとファイル名を指定しますOutputOfExample3_1.txt。
- 2番目のSequential FileステージOutput_2をダブルクリックし、出力ファイルを作成するパスを指定し、その後にファイル名OutputOfExample3_2.txtを指定する
- ジョブを保存します。 これでジョブをコンパイルして実行できる。
入力例のMicrosoft ExcelファイルEmployee3.xlsは、Departmentsシートに部門情報を、Employeesシートに従業員情報を含んでいます。 このジョブは、部門データを OutputOfExample3_1.txt ファイルに、従業員データを OutputOfExample3_2.txt に抽出します。
ジョブの実行後、OutputOfExample3_1.txt ファイルと OutputOfExample3_2.txt ファイルを開きます。 OutputOfExample3_1.txt ファイルおよび OutputOfExample3_2.txt ファイルは、それぞれ Employee.xls ファイルの Departments シートおよび Employees シートと一致している必要があります。