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 |
部品の戻り値 |
この部品の戻り値が格納されます。 |
− |
出力 |
△ |