ホームページ >php教程 >php手册 >PHP4 での COM (Windows) の使用 -- 例

PHP4 での COM (Windows) の使用 -- 例

WBOY
WBOYオリジナル
2016-06-21 09:05:23919ブラウズ

PHP4 COM の MS Word の例
#************************************* *** ****************
# この例は、Zend サイトにあるものに少し変更を加えたものです。
# Word のインスタンスが開きます。
# 「This is a test...」という行を入力します。
# 「Useless test.doc」という名前で保存します。
#*********************************************** *****
#Word コントロールをインスタンス化します
$word = new COM("word.application") または die("Word をインスタンス化できません");
#バージョン番号を取得して出力します
print "Load Word, Version { $word->Version}
";
#com_get を使用してバージョン番号を取得します
$testversion = com_get($word->application,version);
print "Com_get() を使用して取得したバージョン: $testversion
" ;
#Word を表示する
$word->Visible = 1;
#新しい文書を開く
$word->Documents->Add();
#Write
$word->Selection->TypeText ("これはテストです...");
#Save
$word->Documents[1]->SaveAs("Useless test.doc");
#文書を表示したい場合は Word を手動で閉じてください次に、次の行をコメントします
$word->Quit();
?>

PHP4 COM MS Excel の例
#ワークブックをセットアップします,
#ここではインストールに付属の Excel を使用します
$workbook = "C:Program FilesMicrosoft officeOfficeSamplesSOLVSAMP. ) or Die ("接続できませんでした");

#プログラム名とバージョンを取得します

print "プログラム名: {$ex->Application->value }
" ;

print "バージョン: {$ex ->アプリケーション->バージョン}

";



#ワークブックを開く
$wkb = $ex->アプリケーション->ワークブック->開く( $workbook) または Die ("Did not open" );

#元のファイルが破壊されないように別のコピーを保存します

$ex->Application->ActiveWorkbook->SaveAs("Ourtest") ;
#$ex->Application- >Visible = 1; #コメントを削除して Excel を表示します

#セルの内容を読み取ります (E11)
$sheets = $wkb->Worksheets($ Sheet); #ワークシートを選択します
$sheets ->activate; #Activate

$cell = $sheets->Cells(11,5); #セル(列と列番号)を選択します

$cell->activate; #Activate

print "古い値 = {$cell ->value}

"; #内容を印刷: 10000
$cell->value = 15000; #15000 に変更
print "新しい値 = {$cell-> value}
"; #新しいコンテンツを印刷: 15000



#最後に、ワークシートを再計算します
$sheets->Calculate; #計算オプションが手動の場合は必須です
#結果の合計コスト (セル E13) を確認します

$cell = $sheets->Cells( 13,5) ; #セルを選択

$number = Number_format($cell->value);

print "新しい合計コスト =$$number - 以前は $47,732 でした。

";
#$57,809 を印刷します



#Excel の組み込み関数を使用します:
#関数: PMT(パーセント/12 か月、支払い回数、ローン金額)
$pay = $ex->application->pmt( 0.08/12,10,10000);

$pay = sprintf("%.2f",$pay);

print "$10,000 のローンの月々の支払い @ 利息 8% /10 か月: $ $pay

";

#will毎月の支払い = $ -1,037.03



#変更したワークブックを保存します
$ex->Application->ActiveWorkbook->SaveAs("Ourtest");
#すべてのワークブックを閉じる

$ex->application- >ActiveWorkbook-> Close("False");

unset ($ex);

?>



警告/考えられる問題
コードにバグがある場合は、オブジェクトを閉じずにインスタンス化した可能性があります。それ。その結果、エラーを修正すると、すでに複数のインスタンスが存在し、結果に影響を与える可能性があります。解決策: コードエラーを修正した後、新しいコードを実行する前にすべてのインスタンスをクリアします (
の後にタスクを終了します)。同様に、切断するにはコードの最後でプログラムを閉じることを忘れないでください。
com_getとcom_setを使用すると、奇妙な現象に遭遇することがあります。たとえば、Word で $Version = Com_get($instance->Application, "Version"); を使用すると、Excel エラーが発生します。

一部のオブジェクトは PHP4 でインスタンス化できません。これは、これらのオブジェクトが PHP4 COM でサポートされていないインターフェイスを必要とするためです。


なぜ使用するのですか? これらの例があなたにインスピレーションを与えてくれれば幸いです。 PHP COM を使用すると、PHP コード内で多くの Windows プログラムを接続できます。これらのコードは ASP よりも簡単で、PHP のデータベース機能と統合できます。 Microsoft は、COM+、ADO、OLE DB、OWC、Windows DNA など、COM テクノロジを推進するためにさまざまな名前を使用してきました。 PHP と Apache は、これらの難読化に対するオープンなソリューションを提供します。
原文には例が3つありますが、最後のものはPDFに詳しくないので翻訳できませんでした。




声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。