Hitachi

JP1 Version 12 JP1/Automatic Operation サービステンプレートリファレンス


4.13.1 CSV・Excelのセルデータ更新

機能

この部品は,CSV(Comma Separated Values)ファイルまたはMicrosoft社のExcelで作成したExcelシートのセルを,指定した入力データで更新します。Windows環境の場合はCSVファイルまたはExcelファイルの,UNIX環境の場合はCSVファイルの,データを更新します。

更新したデータは,セルの表示形式に従って表示されます。

入力データはタスクログに出力するため,パスワードなどの機密情報は指定しないでください。

次の条件を満たすファイルに対して,セルの更新をサポートします。

・Windows環境の場合,Microsoft Excelで編集可能なファイルであること。

・CSVファイルの場合,拡張子が"csv"のテキストファイルであること。

・UNIX環境の場合,ユーザーの環境変数[LANG]で指定している文字コードで記述され,改行コードがLFであること。

・UNIX環境の場合,CSVファイルのファイル名は,パス名部分を含まない長さが225バイト以内で指定してください。

・Excelファイルの場合,拡張子が"xls"のファイル(「Excel 97〜2003ブック」として保存されたExcelフォーマット),または"xlsx","xlsm"(Excel 2007以降のExcelブック,Excelマクロ有効ブック)のファイルであること。

この部品が前提とするサーバを次に示します。

・実行対象サーバ

 この部品を実行する対象となるサーバです。Windows環境の場合,前提条件に記載のMicrosoft Excelがインストールされている必要があります。

この部品内のスクリプトでは次に示す処理を行います。

・ファイル名(common.fileNameプロパティ)に指定されたファイル内の,セルのリスト(excel.cellListプロパティ)に指定されたセルを,入力データ(excel.inputValue1〜50プロパティ)に指定されたデータで更新します。

入力データに指定できる文字数の合計は5120文字までです。

UNIX環境の場合,入力データで更新したあとの一行の長さが127Kバイトを超えないようにしてください。

UNIX環境の場合,存在する行や列に対して更新します。存在しない行や列を更新しようとするとエラーになります。

指定されたCSVファイルまたはExcelファイルが存在しない場合でも,この部品ではファイルは作成しません。

Windows環境の場合,ビルトインAdministratorが既に対象ファイルを開いている場合,この部品は異常終了します。

32bit版のMicrosoft Excelを使用する時は,次に示すフォルダが存在しない場合にフォルダを作成します。

 %SystemRoot%¥SysWOW64¥config¥systemprofile¥Desktop

64bit版のMicrosoft Excelを使用する時は,次に示すフォルダを事前に作成しておく必要があります。

 %SystemRoot%¥System32¥config¥systemprofile¥Desktop

上記の%SystemRoot%は環境変数「SystemRoot」と同一のフォルダを指します。

UNIX環境の場合,指定したCSVファイル名に「-tmp-yyyymmdd_hhmmss-pid」(yyyymmdd_hhmmssは実行日時,pidは部品のPID)を付加した名称の一時ファイルを作成します。同じ名称のファイルが存在すると上書きするため,指定したCSVファイル名と同じ名称で始まるファイルは作成しないでください。例えば,CSVファイルに「/tmp/data.csv」というファイルを指定した場合は,「/tmp/data.csv-tmp-yyyymmdd_hhmmss-pid」(yyyymmdd_hhmmssは実行日時,pidは部品のPID)という一時ファイルが作成されます。なお,この一時ファイルは,部品が終了した際には削除されます。

UNIX環境の場合,CSVファイルが存在するディレクトリに,CSVファイルのサイズ以上の空き容量が必要です。

UNIX環境の場合,部品の実行ユーザーがCSVファイルの所有者ユーザー以外の一般ユーザーの場合,部品を実行したあとのCSVファイルの所有者とグループが実行ユーザーの情報に変更されます。

利用場面

事前に実行したサービスの実行結果や出力情報をCSV/Excelファイルに書き込む場合に利用できます。

前提条件

【システム内前提製品】/【実行対象サーバ内前提製品】/【実行対象サーバの稼働OS】の最新のサポート状況については,リリースノートを参照してください。

【システム内前提製品】

 JP1/Automatic Operation 11-10以降

【実行対象サーバ内前提製品】

 Windows環境の場合

 (1) Microsoft Excel 2007

 (2) Microsoft Excel 2010

 (3) Microsoft Excel 2013

 (4) Microsoft Excel 2016

 (5) Microsoft Excel 2019

【実行対象サーバの稼働OS】

 (1) Windows Server 2008 R2 Standard/Enterprise/Datacenter

 (2) Windows Server 2012 Standard/Datacenter,Windows Server 2012 R2 Standard/Datacenter

 (3) Windows Server 2016 Standard/Datacenter

 (4) Windows Server 2019 Standard/Datacenter

 (5) Red Hat Enterprise Linux Server 6 (32-bit x86),Red Hat Enterprise Linux Server 6 (64-bit x86_64)

 (6) Red Hat Enterprise Linux Server 7 (64-bit x86_64)

 (7) Red Hat Enterprise Linux Server 8 (64-bit x86_64)

 (8) CentOS 6 (64-bit x86_64)

 (9) CentOS 7 (64-bit x86_64)

 (10) CentOS 8 (64-bit x86_64)

 (11) Oracle Linux 8 (64-bit x86_64)

【実行対象サーバの使用条件】

 なし。

注意事項

・Windows環境の場合の注意事項

(1)この部品のプロパティには「"」(ダブルクォーテーション)および「'」(シングルクォーテーション)を含む文字列は指定しないでください。

(2)この部品では読み取りパスワード,書き込みパスワードを設定したExcelファイルを使用できません。

(3)この部品を同一ファイルに対して同時に実行しないでください。

(4)連結したセルに対して入力する場合,セルのリスト(excel.cellListプロパティ)には左上に位置するセルだけ指定してください。それ以外のセルを指定した場合,部品は正常終了しますが,データは入力されません。

(5)この部品が異常終了してタスクログに「80080005 サーバーの実行に失敗しました」と出力された場合,実行対象サーバ上でExcelファイルを開いている可能性があります。Excelファイルの状態を確認してください。このとき,「OfficeC2RClient.exe」というプロセスが起動する場合があります。このプロセスを終了させる場合はタスクマネージャーなどで操作してください。

(6)部品が異常終了した場合,ファイルは更新されませんので,途中まで入力済みのデータも保存されません。

・UNIX環境の場合の注意事項

(1)この部品のプロパティには「"」(ダブルクォーテーション)および「'」(シングルクォーテーション)を含む文字列は指定しないでください。

(2)LC_ALLやLC_MESSAGESなどLANGより上位のロケール環境変数が設定されている時,上位のロケール環境変数が優先されてしまうため部品を実行する際に,LC_ALLやLC_MESSAGESなどの上位のロケール環境変数を解除するか,LANG環境変数と同一の値に変更してください。

(3)この部品を同一ファイルに対して同時に実行しないでください。

(4)部品が異常終了した場合,ファイルは更新されませんので,途中まで入力済みのデータも保存されません。

(5)CSVファイルのセルのデータには「,」(コンマ)および改行文字は使用できません。使用した場合,列を正しく区切ることができません。

実行権限

Windows環境の場合,Administrator権限

UNIX環境の場合,rootユーザーまたはCSVファイルの所有者ユーザーで,CSVファイルの読み込み権限とCSVファイルの親ディレクトリの書き込み権限が必要

バージョン

02.51.00

部品のタグ

Control OS,File Operations,Windows,Linux

タスクログに表示される部品の名称

osUpdateCSVExcelFileCell

戻り値

戻り値

説明

0

正常

12

異常(ユーザーミス) プロパティ不正

27

異常(エラー内容はタスクログで確認)

41

異常(部品内でエラーを検知) プロパティ未入力(部品スクリプトでエラーを検知)

プロパティ一覧

プロパティ一覧を次の表に示します。

プロパティキー

プロパティ名

説明

デフォルト値

入出力種別

必須区分

plugin.destinationHost

実行対象サーバのホスト名

この部品を実行するサーバのホスト名またはIPアドレスを指定します。IPv6アドレスには対応していません。

− 

入力

○ 

common.fileName

ファイル名

更新対象となるCSVまたはExcelファイルをフルパスで指定します。

− 

入力

○ 

common.sheetName

EXCELファイルのシート名

EXCELファイルのシート名を指定します。CSVファイルの場合は,指定不要です。

Sheet1

入力

△ 

excel.cellList

セルのリスト

Windows環境の場合,データを入力するセルの位置を,A1形式のセル参照文字列またはセルの名前で指定します。複数指定する場合は,コンマ区切りで50件まで指定できます。UNIX環境の場合,データを入力するセルの位置を「行番号;列番号」の形式で指定します。複数指定する場合は,コンマ区切りで50件まで指定できます。

− 

入力

○ 

excel.inputValue1

入力データ1

excel.cellListに指定した1番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue2

入力データ2

excel.cellListに指定した2番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue3

入力データ3

excel.cellListに指定した3番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue4

入力データ4

excel.cellListに指定した4番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue5

入力データ5

excel.cellListに指定した5番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue6

入力データ6

excel.cellListに指定した6番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue7

入力データ7

excel.cellListに指定した7番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue8

入力データ8

excel.cellListに指定した8番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue9

入力データ9

excel.cellListに指定した9番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue10

入力データ10

excel.cellListに指定した10番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue11

入力データ11

excel.cellListに指定した11番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue12

入力データ12

excel.cellListに指定した12番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue13

入力データ13

excel.cellListに指定した13番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue14

入力データ14

excel.cellListに指定した14番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue15

入力データ15

excel.cellListに指定した15番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue16

入力データ16

excel.cellListに指定した16番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue17

入力データ17

excel.cellListに指定した17番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue18

入力データ18

excel.cellListに指定した18番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue19

入力データ19

excel.cellListに指定した19番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue20

入力データ20

excel.cellListに指定した20番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue21

入力データ21

excel.cellListに指定した21番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue22

入力データ22

excel.cellListに指定した22番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue23

入力データ23

excel.cellListに指定した23番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue24

入力データ24

excel.cellListに指定した24番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue25

入力データ25

excel.cellListに指定した25番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue26

入力データ26

excel.cellListに指定した26番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue27

入力データ27

excel.cellListに指定した27番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue28

入力データ28

excel.cellListに指定した28番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue29

入力データ29

excel.cellListに指定した29番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue30

入力データ30

excel.cellListに指定した30番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue31

入力データ31

excel.cellListに指定した31番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue32

入力データ32

excel.cellListに指定した32番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue33

入力データ33

excel.cellListに指定した33番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue34

入力データ34

excel.cellListに指定した34番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue35

入力データ35

excel.cellListに指定した35番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue36

入力データ36

excel.cellListに指定した36番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue37

入力データ37

excel.cellListに指定した37番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue38

入力データ38

excel.cellListに指定した38番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue39

入力データ39

excel.cellListに指定した39番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue40

入力データ40

excel.cellListに指定した40番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue41

入力データ41

excel.cellListに指定した41番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue42

入力データ42

excel.cellListに指定した42番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue43

入力データ43

excel.cellListに指定した43番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue44

入力データ44

excel.cellListに指定した44番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue45

入力データ45

excel.cellListに指定した45番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue46

入力データ46

excel.cellListに指定した46番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue47

入力データ47

excel.cellListに指定した47番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue48

入力データ48

excel.cellListに指定した48番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue49

入力データ49

excel.cellListに指定した49番目のセルに入力するデータを指定します。

− 

入力

△ 

excel.inputValue50

入力データ50

excel.cellListに指定した50番目のセルに入力するデータを指定します。

− 

入力

△ 

common.returnValue

部品の戻り値

この部品の戻り値が格納されます。

− 

出力

△