今年はKNIMEでExcelファイルのシートを扱うことが多く、KD勉強会でも何度かその話をしたので、忘備録その(2)。
Excelファイルの複数のシートをそれぞれ個別Excelファイルとして書き出す (この記事)
テーブルのデータを分類して、それぞれExcelファイルの個別シートとして書き出す (前の記事)
Excelファイルの複数のシートをそれぞれ個別Excelファイルとして書き出す
シート名の取得とシートの読み込み
まずは、複数シートを持つExcelファイルのパス(この例ではワークフローのdataフォルダ内にあり)とそれぞれのシート名をRead Excel Sheet Namesノードで読み込む。
読み込んだファイルパスとシート名のテーブルから、Table Row to Variable Loop Startノードでループを回し、Excel Readerノードで各シートを順番に読み込む。
シートごとにExcelファイルに書き出すためのファイル名の作成
各シートをExcel Writerノードでファイルに書き出すときのファイル名として、シート名の変数 Sheet に ".xlsx" という文字列をString Manipulation (Variable)ノードのjoin関数で付加する。
String to Path (Variable)ノードで変数 Sheet をパスに変換する。
書き出すExcelファイルのパスとして、パスに変換した変数をExcel Writerノードに渡してやる。
Excelファイルへの書き出し
ループの実行が全て終わると、シートの数だけ新たなExcelファイルが書き出せた。