人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Windows2000Server
Apache PHPが動作しております。


\\サーバー名\Apache Group\Apache2\cgi-bin\XXX.xls
にXXX.xlsが保存されています。

http://サーバー名/cgi-bin/XXX.xls

XXX.xlsのB列、3行に対して、数値型のデータをユーザーから入力し、XXX.xlsにデータを保管する
PHPを作成していのですが、どのようにすればいいでしょうか?





●質問者: Gmzho
●カテゴリ:インターネット ウェブ制作
✍キーワード:Apache CGI GROUP http:// PHP
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● TRTr
●35ポイント

素の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のシートに直接書く必要があるかどうか

検討されることをお薦め致します。


2 ● rouge_2008
●35ポイント

以下の記事で紹介されていますが、「Excel_Reviser」を使用してはいかがでしょうか?

Biff8(EXCEL97、2000、XP、2003)形式のxlsファイルの読み書きが出来ます。

http://flex.ranpe.net/?p=358

ユーザーが入力したデータを書き込みたいのでしたら、フォームを使用して送信したデータを以下のような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...

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ