---
schema_version: "1"
id: e15844c81014746b28e3711e2db07bbed6c06302555e7d8fd5332df782164283
title: Excel (XLSX) ファイルのデータの参照
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/dataweave/2.6/dataweave-cookbook-xlsx-lookup.md
canonical_url: https://docs.mulesoft.com/jp/dataweave/2.6/dataweave-cookbook-xlsx-lookup
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 9a4458cf279f2fc4b353adac161e67bf244038740b9438738a9cb49f45726e27
description: MuleSoft Documentation Site
release: "2.6"
latest: false
---
# Excel (XLSX) ファイルのデータの参照

この DataWeave の例では、​`filter`​ 関数を使用して、指定された値を含む、Excel (XLSX) 入力ファイルの行のみを返します。 開始する前に、Mule 4 アプリケーションでは DataWeave のバージョン 2.x が使用されることに注意してください。Mule 3 アプリケーションでの DataWeave については、​[DataWeave バージョン 1.2 の例](#1.2@dataweave::dataweave-examples.adoc)​を参照してください。 他の DataWeave バージョンの場合は、DataWeave の目次のバージョンセレクターを使用できます。

<table><tbody><tr><td class="icon"><i class="fa icon-note" title="Note"></i></td><td class="content">デフォルトでは、1.5 MB を超えるファイルはディスクに保存されます。これより小さいファイルはメモリに保存されます。</td></tr></tbody></table>

次の DataWeave スクリプトでは、XLSX ファイルを読み取り、そのファイルから絞り込まれたデータを返します。​`ourBugs.xlsx`​ という名前のスプレッドシートには、​`Fred M`​ という名前の担当者を含め、チームのすべてのメンバーに割り当てられたバグに関するデータが含まれていると仮定します。

DataWeave スクリプト:

```dataweave
%dw 2.0
var myInput = readUrl("classpath://ourBugs.xlsx", "application/xlsx")
output application/json
---
myInput."Data" filter ((entry, index) -> entry."Assignee" == "Fred M")
```

- スクリプトは ​`classpath:ourBugs.xlsx`​ を ​`readUrl`​ 関数に渡して、Studio プロジェクトディレクトリ (​`src/main/resources`​) からファイルを読み取ります。結果は変数 ​`myInput`​ に保存されます。
- スクリプトは XLSX ファイルから ​`Data`​ という名前のシートを選択した後、​`Assignee`​ 列に ​`Fred M`​ の値が含まれるレコードを除き、すべてのレコードを除外します。 結果は JSON オブジェクトの配列で返されます。次に例を示します。

\[
  {
    "Issue Key": "BUG-11708",
    "Issue Type": "Bug",
    "Summary": "Some Description of the Bug",
    "Assignee": "Fred M",
    "Reporter": "Natalie C",
    "Priority": "To be reviewed",
    "Status": "Closed",
    "Resolution": "Done",
    "Created": "2019-04-29T03:57:00",
    "Updated": "2019-05-06T10:40:00",
    "Due Date": ""
  },
  {
    "Issue Key": "BUG-4903",
    "Issue Type": "Story",
    "Summary": "Some Description of the Bug",
    "Assignee": "Fred M",
    "Reporter": "Fred M",
    "Priority": "To be reviewed",
    "Status": "In Progress",
    "Resolution": "",
    "Created": "2019-05-07T11:22:00",
    "Updated": "2019-05-08T10:16:00",
    "Due Date": ""
  },
  {
    "Issue Key": "BUG-4840",
    "Issue Type": "Story",
    "Summary": "Some Description of the Bug",
    "Assignee": "Fred M",
    "Reporter": "Pablo C",
    "Priority": "To be reviewed",
    "Status": "In Validation",
    "Resolution": "",
    "Created": "2019-04-30T07:11:00",
    "Updated": "2019-05-08T10:16:00",
    "Due Date": ""
  }
\]

次の例は、前の例と同じ DataWeave スクリプトを使用して、​`filter`​ 式の結果をファイル ​`fredBugs.json`​ に書き込みます。この例は、Studio の Mule プロジェクトからの設定 XML です。

Studio での XML 設定:

```XML
<file:config name="File_Read_Config" doc:name="File Read Config" />
<file:config name="File_Write_Config" doc:name="File Write Config" />
<flow name="xlsx-lookup" >
  <scheduler doc:name="Scheduler" >
    <scheduling-strategy >
      <fixed-frequency frequency="1" timeUnit="MINUTES"/>
    </scheduling-strategy>
  </scheduler>
  <ee:transform doc:name="Transform Message" >
    <ee:message >
      <ee:set-payload ><![CDATA[%dw 2.0
var myInput = readUrl("classpath://ourBugs.xlsx", "application/xlsx")
output application/json
---
myInput."Data" filter ((entry, index) -> entry."Assignee" == "Fred M")]]></ee:set-payload>
    </ee:message>
  </ee:transform>
  <file:write doc:name="Write JSON"
              path="/path/to/fredBugs.json"
              config-ref="File_Write_Config">
</flow>
```

- Scheduler (​`scheduler`​) はフローをトリガーし、次のコンポーネント (Transform Message) を実行します。
- Transform Message コンポーネント (​`ee:transform`​) は、​`Assignee`​ 列に ​`Fred M`​ の値が含まれるすべてのレコードを ​`"Data"`​ シートから返す DataWeave スクリプトを提供し、バイナリ XLSX 入力を JSON 出力に変換します。
- File Connector の Write 操作 (​`file:write`​) は、​`ee:transform`​ から JSON ペイロードを受け取り、​`fredBugs.json`​ という名前のファイルにペイロードを書き込みます。

## [](#関連情報)関連情報

- [filter 関数](https://docs.mulesoft.com/jp/dataweave/2.6/dw-core-functions-filter)
- [サポートされるデータ形式](https://docs.mulesoft.com/jp/dataweave/2.6/dataweave-formats)