Apache PHPが動作しております。
\\サーバー名\Apache Group\Apache2\cgi-bin\XXX.xls
にXXX.xlsが保存されています。
http://サーバー名/cgi-bin/XXX.xls
XXX.xlsのB列、3行に対して、数値型のデータをユーザーから入力し、XXX.xlsにデータを保管する
PHPを作成していのですが、どのようにすればいいでしょうか?
素のPHPではそのままではExcel形式で直接データを扱うことはできません。
クラスかライブラリが必要となります。
PHPExcel
Dl http://devzone.zend.com/node/view/id/1726
解説 http://c-brains.jp/blog/wsg/09/09/10-130907.php
DLしてサーバにインストール。Pear - OLEが必須。
もしくはPEARのSpred Sheet Excel Writer
http://phpspot.net/php/pgExcel%8C%60%8E%AE%82%CC%83t%83@%83C%83%...
導入できれば読み書きの例は上記サイトにあります。
PEARとはPHP用のライブラリ管理ツールで
ライブラリのダウンロード、インストール、アップデート、アンインストールを
簡単に行える環境で、PHPのおまけについてます。
http://phpspot.net/php/pgPear%82%C9%82%C2%82%A2%82%C4.html
レンタルサーバなどではPEARが直接使えない環境もあります。
その場合ライブラリのインストールやパスの指定を
全て手で行う必要があり、ちょっと面倒です
http://peardoc.xole.net/installation.manually.html
PEARが使えるか使えないかはサーバの業者/管理者にお問い合わせください。
xlsファイルを直接扱うのはExcel以外には結構難しいです。
csvで保存すればテキストエディタでもExcelでも開けます。
保存だけではなくデータとして処理するならsqliteなどデータベースのほうが便利です。
このふたつはPHPに標準で機能を持っています。(PDO::sqliteはPHP5.1以降)
どうしてもExcelのシートに直接書く必要があるかどうか
検討されることをお薦め致します。
以下の記事で紹介されていますが、「Excel_Reviser」を使用してはいかがでしょうか?
Biff8(EXCEL97、2000、XP、2003)形式のxlsファイルの読み書きが出来ます。
ユーザーが入力したデータを書き込みたいのでしたら、フォームを使用して送信したデータを以下のようなphpで受け取って処理すると良いです。
※フォームは別途作成してください。m(__)m
http://www.standpower.com/php_form.html
<?php require_once('reviser.php'); $reviser=NEW Excel_Reviser; // EUC以外で作成する場合に設定。※例はSJISにする場合です。 $reviser->setInternalCharset('SJIS'); // フォームから送信されたデータを格納します。 // ※ここではline1,line2,line3で取得するようにしていますので、フォームの各項目名「name」に「line1」「line2」「line3」を指定します。 $row1 = $_POST['line1']; $row2 = $_POST['line2']; $row3 = $_POST['line3']; $reviser->addString(0,0,1, $row1); //1枚目のシートの1行目2列目 $reviser->addString(0,1,1, $row2); //1枚目のシートの2行目2列目 $reviser->addString(0,2,1, $row3); //1枚目のシートの3行目2列目 // EXCELの読み込みと出力にエラー発生時の処理を追加※例は上書きする場合です。 // 上書きしたくない場合は違うファイル名にしてください。 $reviser->setErrorHandling(1); $result=$reviser->reviseFile('sample.xls', 'sample.xls', './'); if ($reviser->isError($result)){ $errmes=$result->getMessage(); } else { echo "正常に書き込まれました。<br>\r\n"; } ?>
http://chazuke.com/?page_id=126
※ダウンロードするにはフォーラムに登録する必要があります。
Excel2007形式形式のファイルを読み書きしたい場合は、以下の記事で紹介されている「PHPExcel」を使用してください。
http://journal.mycom.co.jp/articles/2009/03/06/phpexcel/index.ht...
コメント(3件)
のあたりが参考になりませんか。
数値ということですので、「addString」を「addNumber」に修正してください。
※先に投稿したコメントは、勘違いだったので削除しました。
様々なご意見を頂きまして、実際に確認後コメントします。
取り急ぎですが