ホームページ php教程 php手册 再投稿: PHP4 の COM 関数 (Windows バージョン)

再投稿: PHP4 の COM 関数 (Windows バージョン)

Jun 21, 2016 am 09:14 AM
application com gt quot word

ウィンドウ|関数

最近 Excel を mysql に変換することについて書いていて、phpx フォーラムを検索したところ、そのような投稿はありませんでしたので、次のように再投稿しました:


PHP4 (Windows バージョン)


はじめに

組み込み PHP4 の COM 関数は、win32 環境でプログラムを開発するのに非常に魅力的ですが、関連する技術文書はまだ多くありません。この記事では、MS office 2000 Word、Excel、および Adob​​e Distiller をそれぞれ扱う、PHP での COM 関数の使用方法を 3 つの例を使用して説明します。

COMテクノロジーは数年前にMicrosoftによって提案され、開発されました。この記事で言及されている関連用語は、OLE、OLE Automation、ActiveX、COMです。これらの単語の意味は基本的に同じです

。 Windows アプリケーションの一部の機能を完了するためのコード (オブジェクト) が段落にカプセル化されています。 PHP4 COM 関数は、オブジェクト インスタンスに接続し、そのメソッドとプロパティを使用できます。

以下のサンプルソースコードを使用したい場合は、私の構成を参照してください。

Windows 98 - MS Office 2000
Apache 1.3.9 Windows
PHP4.02 開発 (08-20-00) PHP4 で CGI


COM タグとして実行

それでは、始めましょう。PHP4 の COM を使用してコンポーネントをインスタンス化します、 new 演算子とオブジェクトの「OLE プログラム識別子」が必要です:


$instance = new COM("$identifier");

COM は PHP4 の予約語であるため、次のようになります。このオブジェクトの識別子をコンストラクターに渡すと、このコンポーネントのインスタンスを取得できるようになり、OOP クラスの性質に従って、そのメソッドとプロパティに簡単にアクセスできるようになります。

例:


$instance->[オブジェクト]->[メソッド1]->[メソッド2]->..->[プロパティ];

それはとても簡単です!

OOP 構造は PHP では機能しません (PHP 構文の問題により、属性の名前と値はドットや括弧などの不正な文字です)。そのため、PHP4 では 2 つの対応する関数が提供されています:


bool com_set ( class com_object, string property name, string property_value);

mixed com_get(class com_object, string property_name);

最後に、PHP4 はリモート コンピューター上にオブジェクト インスタンスを作成できる DCOM テクノロジーもサポートしています。


$Instance = new COM(string "Component name", string "remote_server_address");

?> 注: これは、PHP をセットアップするために DCOM 命令を使用しています。将来的には、PHP 開発者は Unix での DCOM のサポートを提供する予定です。

識別子、メソッド、プロパティ

識別子は次のような文字列です:

MS Word: "Word.Application" または "Word.Application.9"
MS Excel: "Excel.Application" または "Excel.Sheet"
ADOBE Acrobat: "Exch.application" または "PdfDistiller.PdfDistiller"

最後の識別子については、正しいオブジェクト識別子を取得するのは簡単な作業ではないことを指摘したいと思います。 VBA ドキュメントにアクセスできない場合は、Windows 登録テーブルを検索して HKEY_CLASSES_ROOT で検索すると、いくつかのアプリケーションの名前を取得できます。マシン上で有効なオブジェクト ID は、CLSID サブフォルダーに配置されます。

アプリケーションは通常、その COM メソッドとプロパティを説明するドキュメントを提供します。 office2000 では、プログラムを実行し、VBA エディタを開いて、オブジェクト エディタを選択できます。アプリケーション ライブラリにメソッド名または属性名を入力し、下のウィンドウでクラスまたはメンバー名を右クリックし、[ヘルプ]をクリックすると、クラスまたはメンバーの説明が表示されます。 MSDN も参照できます。 Excel の例は次のとおりです。 http://msdn.microsoft.com/library/officedev/off2000/xltocobjectmodelapplication.htm


COM 関数を使用して MS Word を操作します

さて、最初の例を始めましょう:


# ************************************************* * *******
# この例は Zend サイトからのもので、少し変更されています
# Word インスタンスを開いて新しいドキュメントを作成します 役に立たない test.doc
# テキスト行を入力します 「This is a test2.. 「
#* ******************************************** ****** ******

#オブジェクトをインスタンス化する

$word = new COM("word.application") または die("Word をインスタンス化できません");

# version

print "ロードされた Word、バージョン {$word->バージョン}
";

#バージョンを取得する別の方法

$testversion = com_get($word->application,version); Com_get() を使用したバージョン: $testversion
";

#可視化する

$word->Visible = 1;

#新しいドキュメントを作成する

$word->Documents->Add();

#文字を書く

$word->Selection->TypeText("これはテストです...");

#Save

$word->Documents[1]->SaveAs("役に立たない) test.doc") ;

#Close

$word->Quit();

?>

このプログラムを読み、Word の OLE 技術文書を参照するのに数分を費やすだけで、独自のプログラムで必要なほぼすべての操作を学習できます。

MS ExcelはPHPのCOM関数を使用しています

上記のWordの例と同様に、この例はExcelのVisual Basicエディタでオブジェクトブラウザのヘルプドキュメントを参照しながら学習する必要があります。


#ワークブックとそのシートを開きます。
#この例では、Excel インストールに付属のスプレッドシートを使用します。SOLVSAMP. Tour";

#コンポーネント オブジェクトをインスタンス化します
$ex = new COM("Excel.sheet") or Die ("接続できませんでした");

#プログラム名とバージョンを取得します
print "アプリケーション名:{ $ex->Application->value}
" ;
print "ロードされたバージョン: {$ex-> Application->version}
";

#使用できるようにワークブックを開いてください
$wkb = $ex->application->Workbooks->Open($workbook) or Die ("開かなかった");

#元のワークブックを事前に保存し、ワークブックのコピーを作成します
$ex-> ;Application->ActiveWorkbook->SaveAs("Ourtest");
#$ex->Application-> ;Visible = 1; #この文をコメントして Excel を表示します

# 新しいワークシートのセルを読み書きします
# このセル E11 (第 4 四半期の広告) を読み取ることができます
$sheets = $wkb- >Worksheets($sheet); #シートを選択します
$sheets->activate; #シートをアクティブ化します
$cell = $sheets->Cells(11,5) ; #セル(行列番号)を選択します
$ cell->activate; #セルをアクティブ化します
print "Old Value = {$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 "新しい合計コスト =$$ 数値 - 以前は $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
";オプション、save
$ex->Application->ActiveWorkbook->SaveAs("Ourtest" ; Excel は連携して動作します。もちろん、利用できるオブジェクトはさらに多く、自作の OOP ラッパー クラスへのアクセスは、エクセル。

PHP COM を使用して Adob​​e Distiller にアクセスします

この最後の例は MS プログラムではありません。プログラムに PostScript ファイルがある場合は、これに興味があるでしょう。Adobe にはそれが 1 つあります

。インスタンスを生成できる Distiller というプログラム。コードは次のとおりです:


$pdf = new COM("pdfdistiller.pdfdistiller.1");

?>

注意すべき点は、OLE 識別名「pdfdistiller」が Distiller のドキュメントに記載されていることです。それは無効です。

ファイルを抽出する最も基本的な方法は次のとおりです:


$pdf->FileToPdf ($psfile, strOutputPDF '', strJobOptions "");

?> この $psfile は、このファイルの名前です。 PostScript 、strOutputPDF は、出力ファイル PDF のファイル名です。 StrJobOptions は Distiller のパラメーター ファイル名です。最後の 2 つのパラメーター

はオプションであり、デフォルトでは同じ名前になります。 PS ファイル名と PDF ファイル名には、このデフォルトのジョブ オプション ファイルが使用されます。例:


$pdf->FileToPdf ($psfile, "", "");
#Here $psfile は Myfile.ps であり、Myfile.pdf ファイルを返します。

?>

Distiller で使用できるメソッドとプロパティは他にもあります。ご興味がございましたら、Adobe の技術ドキュメントをご参照ください。


中止/考えられる問題

コードで何か問題が発生した場合は、インスタンスを作成しても正常に閉じていない可能性があります。最悪の場合、このアプリケーションはこのインスタンスによって保持される可能性があり、終了します

プログラム リストにプログラムのコピーが複数ある場合、エラーを修正したとしても結果に支障をきたします。解決策は、バグを修正した後、時間内にバグを解消することです

再び実行を開始する前に、タスクを使用して終了します。同じ理由で、コードの最後でもプログラムを終了し、適切なタイミングでインスタンスを削除する必要があります。

com_get と com_set の例外を処理するためのヒントがいくつかあります。例:
$Version = Com_get($instance->Application,"Version");

は Word では機能しますが、Excel ではエラーが発生します。

PHP4 ではインスタンス化できないオブジェクトがいくつかあります。これは、このプログラムがカスタム インターフェイスを必要とするためですが、PHP4 はそれをサポートしていません。


なぜそれを使用するのですか?

これら 3 つの例が、PHP の COM を使用して PHP スクリプトで Windows 4 プログラムにアクセスできるようにするためのヒントになれば幸いです。このコードは ASP よりも単純で、他の

PHP の強力なデータベース サポート機能を統合できます。 Microsoft は、COM+ (Combine COM with

Microsoft Transaction Server MTS)、ADO、OLE DB、OWC、Windows DNA など、さまざまな名前と構造の下で、この COM テクノロジをさまざまな側面で大々的にマーケティングしています。 PHP と Apache を組み合わせることで、オープンソース ソリューションが提供されます。



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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Wordの自動折り返しを解除する方法 Wordの自動折り返しを解除する方法 Mar 19, 2024 pm 10:16 PM

Word 文書のコンテンツを編集するときに、行が自動的に折り返されることがあります。この時点で調整を行わないと、編集に大きな影響があり、非常に頭を痛めることになります。何が起こっているのでしょうか?実は、これは定規の問題なのですが、以下ではワードの自動折り返しを解除する方法を紹介しますので、皆さんのお役に立てれば幸いです。 Word 文書を開いて文字を入力した後、コピーして貼り付けようとすると、文字が改行される場合があるため、この問題を解決するには設定を調整する必要があります。 2. この問題を解決するには、まずこの問題の原因を知る必要があります。ここでは、ツールバーの下にある [表示] をクリックします。 3. 次に、下の「ルーラー」オプションをクリックします。 4. この時点で、ドキュメントの上に定規が表示され、その上にいくつかの円錐形のマーカーが表示されます。

Wordで定規を表示する方法と定規の操作方法を詳しく解説! Wordで定規を表示する方法と定規の操作方法を詳しく解説! Mar 20, 2024 am 10:46 AM

Wordを使っていると、内容をより美しく編集するために定規を使うことが多いです。 Word のルーラーには、文書のページ余白、段落インデント、タブなどを表示および調整するために使用される水平ルーラーと垂直ルーラーが含まれていることを知っておく必要があります。では、Word で定規を表示するにはどうすればよいでしょうか。次にルーラー表示の設定方法を説明します。必要な学生はすぐに集めてください。 1. まず、ワードルーラーを表示します. デフォルトの Word 文書にはワードルーラーが表示されません. Word の [表示] ボタンをクリックするだけです。 2. 次に、[ルーラー]のオプションを見つけてチェックを入れます。このようにしてワードルーラーを調整することができます!はい、もしくは、いいえ

Word文書に手書きの署名を追加する方法 Word文書に手書きの署名を追加する方法 Mar 20, 2024 pm 08:56 PM

Word 文書はその強力な機能により広く使用されており、図や表などさまざまな形式を Word に挿入できるだけでなく、ファイルの完全性と信頼性を確保するために、多くのファイルの最後に手動で署名する必要があります。複雑な問題を解決するにはどうすればよいですか? 今日は、Word 文書に手書きの署名を追加する方法を説明します。スキャナー、カメラ、または携帯電話を使用して手書きの署名をスキャンまたは撮影し、PS またはその他の画像編集ソフトウェアを使用して画像に必要なトリミングを実行します。 2. 手書き署名を挿入したい Word 文書で「挿入 - 画像 - ファイルから」を選択し、切り取られた手書き署名を選択します。 3. 手書き署名の画像をダブルクリック(または画像を右クリックして「画像形式の設定」を選択)すると、「画像形式の設定」がポップアップ表示されます。

Wordのページ余白を設定する方法 Wordのページ余白を設定する方法 Mar 19, 2024 pm 10:00 PM

オフィスソフトの中でもWordは最もよく使われているソフトです。私たちが制作するテキスト文書は基本的にWordで操作します。必要に応じて紙で提出する必要がある文書もあります。印刷する前にレイアウトを設定してから提示する必要があります」 . より良い結果が得られます。そこで質問は、Word でページの余白をどのように設定するかということです。あなたの疑問を解決するために、具体的なコースの説明があります。 1. Word 文書を開くか、新しい Word 文書を作成し、メニュー バーの [ページ レイアウト] メニューをクリックします。 2. 「ページ設定」オプションの「余白」ボタンをクリックします。 3. リストから一般的に使用されるページ余白を選択します。 4. リストに適切なマージンがない場合は、[カスタム マージン] をクリックします。 5. 「ページ設定」ダイアログボックスが表示されるので、「余白」オプションをそれぞれ入力します。

Wordで点線を引く方法 Wordで点線を引く方法 Mar 19, 2024 pm 10:25 PM

Wordはオフィスでよく使っているソフトで、大きな記事の場合、中の検索機能を使って全文中の単語が間違っていることを見つけたり、一つ一つ変更していき、上司に提出する際に文書を美化して見栄えを良くするなど、以下に編集者が点線の描き方の手順を紹介します。 Wordのline. 一緒に学びましょう! 1. まず、下図に示すように、コンピューター上で Word 文書を開きます。 2. 次に、下図の赤い丸で示すように、文書にテキスト文字列を入力します。 3. 次に、 と を押します。 [ctrl+A] を押しながら、下図の赤丸で示したテキストをすべて選択します。 4. メニューバー上部の [開始] をクリックします。

Wordの網掛け設定はどこにあるのでしょうか? Wordの網掛け設定はどこにあるのでしょうか? Mar 20, 2024 am 08:16 AM

オフィスワークなどでワードを使うことが多いですが、ワードの網掛けの設定がどこにあるのかご存知ですか?今日は具体的な操作手順を紹介しますので、ぜひ見てください。 1. まず、Word文書を開き、網掛けを追加する必要があるテキスト段落情報の段落を選択し、ツールバーの[開始]ボタンをクリックし、段落領域を見つけて、右側のドロップダウンボタンをクリックします(下図の赤丸で示すように))。 2. ドロップダウン ボックス ボタンをクリックした後、ポップアップ メニュー オプションで [境界線と網掛け] オプションをクリックします (下図の赤丸で示されているように)。 3. [境界線と網かけ]ダイアログボックスが表示されるので、[網かけ]オプションをクリックします(下図の赤丸部分)。 4. 塗りつぶされた列で色を選択します

Wordで下矢印を削除する具体的な手順! Wordで下矢印を削除する具体的な手順! Mar 19, 2024 pm 08:50 PM

日常のオフィスワークで、Webサイトの文章をコピーしてWordに直接貼り付けると、[下矢印]が表示されることがありますが、この[下矢印]は選択することで削除できますが、数が多すぎると[下矢印]が表示されます。では、すべての矢印を簡単に削除する方法はあるのでしょうか?そこで今回はWordの下向き矢印を削除する具体的な手順を紹介します!まず、Wordの[下矢印]は、実は[手動改行]を表しています。以下の図に示すように、すべての [下矢印] を [段落マーク] 記号に置き換えることができます。 2. 次に、メニュー バーの [検索と置換] オプションを選択します (下図の赤丸で示されています)。 3. [置換]コマンドをクリックすると、ポップアップボックスが表示されるので、[特殊記号]をクリックします。

Wordで表を描く方法 Wordで表を描く方法 Mar 19, 2024 pm 11:50 PM

Word は非常に強力なオフィスソフトであり、WPS に比べて詳細な処理に優れており、特に文書の記述が複雑な場合には Word を使用した方が一般的には安心です。そのため、社会に出たらワードの使い方のコツを学ばなければなりません。以前、いとこからこんな質問をされましたが、Wordを使っていると他の人が表を描いているのをよく見かけますが、とてもレベルの高いものを感じます。高度な内容に見えましたが、実際に操作するのはたったの3ステップでした Wordで表を描く方法をご存知ですか? 1. Word を開き、表を挿入する場所を選択し、上部のメニュー バーにある [挿入] オプションを見つけます。 2. 「テーブル」オプションをクリックすると、密集した小さな立方体が表示されます。

See all articles