PHPExcelでExcelファイルを読み書き両用として開く方法
PHPExcelには、読み取りと書き込みの両方を目的としてファイルを「開く」という概念は存在しません。これは、PHPExcelオブジェクトが元のファイルのソースを意識していないためです。ファイルがどこから読み込まれたか、またどの形式のファイルであるかにかかわらず、PHPExcelは指定された名前に基づいてファイルを読み取り、同じ名前で保存することができます。この方法により、既存のファイルは上書きされ、新しい変更内容がそのままファイルに反映されます。
コード例
以下に、既存のExcelファイルを読み込み、セルの値を変更したうえで同じファイル名で保存する具体的な例を示します。
error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
set_include_path(get_include_path() . PATH_SEPARATOR . './Classes/');
include 'PHPExcel/IOFactory.php';
$fileType = 'Excel5';
$fileName = 'name_of_file.xls';
// ファイルを読み込む
$objReader = PHPExcel_IOFactory::createReader($fileType);
$objPHPExcel = $objReader->load($fileName);
// ファイルの内容を変更する
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1', 'Hello')
->setCellValue('B1', 'World!');
// ファイルを保存(書き出し)する
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, $fileType);
$objWriter->save($fileName);実行結果
上記のコードを実行すると、次のような結果が得られます。
セルA1・B1への変更が name_of_file.xls ファイルに反映されます。
処理の流れの解説
まず、set_time_limit(0) によってスクリプトの実行時間制限を解除し、タイムゾーンを Europe/London に設定しています。ファイル形式は Excel5(xls形式)として指定し、対象のファイル名を変数 $fileName に代入します。
続いて、PHPExcel_IOFactory クラスの createReader メソッドを使ってリーダーオブジェクトを生成し、load 関数で実際にファイルを読み込みます。その後、アクティブなシートのセルA1とB1の値をそれぞれ「Hello」「World!」に変更し、最後に createWriter メソッドでライターオブジェクトを作成して、同じファイル名で保存しています。これにより、元のファイルが新しい内容で上書きされます。
-
ExcelでXMLファイルを開く方法|所得税データを読み込む2つの簡単な手順
XML(Extensible Markup Language/拡張マークアップ言語)は、主にデータの保存や転送に使用されるファイル形式です。Microsoft Excelはこの形式に対応しており、所得税関連のXMLファイルも簡単に開いて編集できます。本記事では、ExcelでXMLファイルを開く2つの簡単な方法を、具体的な手順とともにわかりやすく解説します。 所得税用のXMLファイルをExcelで開く2つの便利な方法 ここでは、税務関連データを含むXMLファイルをExcelで開きます。このファイルをメモ帳(Notepad)で開くと、次のような構造になっています。「項目(Particulars)」
-
Excelで連絡先用CSVファイルを作成する方法|初心者向け簡単4ステップ解説
Excelで作業していると、顧客情報、商品情報、学生や取引先の連絡先など、一連のデータを扱う場面が多くあります。こうしたデータは適切に管理する必要があり、そのためにはExcelファイルをCSVファイルに変換して、連絡先情報を保存しておくのが便利です。本記事では、Excelで連絡先用のCSVファイルを作成する方法を、簡潔かつ丁寧に解説します。特別なツールは不要で、誰でも短時間で完了できる内容です。ぜひ参考にして、Excelスキルの向上にお役立てください。 CSVファイルとは? CSV(カンマ区切り値)ファイルは、Microsoft Excelのような表計算ソフトを扱う上で必ず出会うファイル形式