4.13.9 Excel-CSVファイル変換
機能
この部品は,Microsoft Excelファイル(*.xlsx,*.xlsm,*.xls)を,CSVファイル(*.csv)に変換します。
次の条件を満たすMicrosoft Excelファイルの変換をサポートします。
・Microsoft Excelで編集可能なファイルであること。
・Excelファイルの場合,拡張子が"xls"のファイル(「Excel 97〜2003ブック」として保存されたExcelフォーマット),または"xlsx","xlsm"(Excelブック,Excelマクロ有効ブック)のファイルであること。
この部品が前提とするサーバを次に示します。
・実行対象サーバ
この部品を実行する対象となるサーバです。前提条件に記載のMicrosoft Excelがインストールされている必要があります。
この部品内のスクリプトでは次に示す処理を行います。
ファイル名(common.fileNameプロパティ)に指定された入力ファイルのEXCELファイルのシート名(common.sheetNameプロパティ)で指定したシートをMicrosoft Excelで開き,CSVファイルとして保存します。
※変換後のファイルは下記を連結した名称になります。
・ファイル出力先フォルダパス(common.outputFolderPathプロパティ)の値
・フォルダの区切り文字「¥」
・変換元のファイル名のうち,拡張子を除いた文字列
・「.csv」
ファイル名(common.fileNameプロパティ)にはワイルドカード(*)を部分一致で指定することが可能です。
ファイル名(common.fileNameプロパティ)にワイルドカード(*)を指定した場合,EXCELファイルのシート名(common.sheetNameプロパティ)を対象とした変換処理を複数のファイルに対して実行します。
CSVファイルを保存する際にOffice Visual Basic for Applications (VBA)の次のメソッドで,ファイルフォーマットxlFileFormatを指定しています。
Workbook.SaveAs (
"ファイル名(common.fileNameプロパティ)の値", ※1
xlFileFormatの値 ※2
)
※1 ファイル名(common.fileNameプロパティ)の値にワイルドカードを指定した場合,該当する各ファイルが指定されます。
※2 xlFileFormatの値として,
文字エンコード種別(common.characterEncodingプロパティ)にDEFAULTを指定した場合は6(CSV),
文字エンコード種別(common.characterEncodingプロパティ)にUTF-8を指定した場合62(UTF8 CSV)を指定しています。
ファイル出力先フォルダパス(common.outputFolderPathプロパティ)に指定したフォルダが存在しない場合はフォルダを作成し,その配下に変換後のファイルを出力します。なお,変換後のファイルと同名のファイルが既に存在する場合は上書きします。
また,32bit版のMicrosoft Excelを使用する時は,次に示すフォルダが存在しない場合にフォルダを作成します。
%SystemRoot%¥SysWOW64¥config¥systemprofile¥Desktop
64bit版のMicrosoft Excelを使用する時は,次に示すフォルダを事前に作成しておく必要があります。
%SystemRoot%¥System32¥config¥systemprofile¥Desktop
上記の%SystemRoot%は環境変数「SystemRoot」と同一のフォルダを指します。
利用場面
CSV・Excel分割部品を使用してExcelファイルを分割している環境で,CSVデータ分割部品を使用するように運用を変更する場合,ExcelファイルをCSVファイルとして変換しておく必要があります。この部品によってファイルを変換することが可能です。
前提条件
【実行対象サーバ内前提製品】/【実行対象サーバの稼働OS】の最新のサポート状況については,リリースノートを参照してください。
また、OSおよび製品について略称を用いています。対象とするOSおよび製品については「はじめに」を参照してください。
【実行対象サーバ内前提製品】
(1) Microsoft Excel
【実行対象サーバの稼働OS】
(1) Windows Server
【実行対象サーバの使用条件】
なし。
注意事項
(1)この部品のプロパティには「"(ダブルクォーテーション)」および「'(シングルクォーテーション)」を含む文字列は指定しないでください。
(2)この部品が異常終了してタスクログに「80080005 サーバーの実行に失敗しました」と出力された場合,実行対象サーバ上でExcelファイルを開いている可能性があります。Excelファイルの状態を確認してください。このとき,「OfficeC2RClient.exe」というプロセスが起動する場合があります。このプロセスを終了させる場合はタスクマネージャーなどで操作してください。
(3)変換前のファイル名,または変換後のファイル名が同一となる場合,この部品を同時に実行しないでください。
(4)ファイルの読み込み及び書き出しはMicrosoft Excelを使用します。このため,読み込めるファイルの列数や行数などの制限や書き出されたCSVのフォーマットは,使用されるMicrosoft Excelに制限されます。
なお,Microsoft Excel 2019より前のバージョンではUTF-8のCSVファイルを書き出すことができないため,文字エンコード種別(common.characterEncodingプロパティ)にUTF-8を指定しないでください。また,Microsoft Excel 2019のバージョンでUTF-8を指定した場合,Microsoft ExcelによってCSVファイルにBOM(Byte Order Mark)が設定されます。
(5)この部品のプロパティに,隠しファイルを指定することはできません。
(6)この部品を同一の実行対象サーバに対して多重実行した場合、排他処理により処理待ちが発生します。処理待ちで3600秒以上経過した場合にはタイムアウトとなり、実行失敗となります。
実行権限
Administrator権限
バージョン
03.60.01
部品のタグ
Control OS,File Operations,Windows
タスクログに表示される部品の名称
osConvertExcelFile
戻り値
戻り値 |
説明 |
---|---|
0 |
正常 |
12 |
異常(ユーザーミス) プロパティ不正 |
27 |
異常(エラー内容はタスクログで確認) |
41 |
異常(部品内でエラーを検知) プロパティ未入力(部品スクリプトでエラーを検知) |
プロパティ一覧
プロパティ一覧を次の表に示します。
プロパティキー |
プロパティ名 |
説明 |
デフォルト値 |
入出力種別 |
必須区分 |
---|---|---|---|---|---|
plugin.destinationHost |
実行対象サーバのホスト名 |
この部品を実行するサーバのホスト名またはIPアドレスを指定します。IPv6アドレスには対応していません。 |
− |
入力 |
○ |
common.fileName |
ファイル名 |
変換対象のExcelファイルをフルパスで指定します。ファイル名にはワイルドカード(*)を指定可能です。 |
− |
入力 |
○ |
common.sheetName |
EXCELファイルのシート名 |
EXCELファイルのシート名を指定します。 |
Sheet1 |
入力 |
△ |
common.outputFolderPath |
ファイル出力先フォルダパス |
変換後のファイルを出力するフォルダをフルパスで指定します。 |
− |
入力 |
○ |
common.characterEncoding |
文字エンコード種別 |
書き出すCSVファイルのエンコード種別を指定します。指定可能なエンコード種別はDEFAULT,または,UTF-8です。 |
DEFAULT |
入力 |
△ |
common.returnValue |
部品の戻り値 |
この部品の戻り値が格納されます。 |
− |
出力 |
△ |