再投稿: PHP4 の COM 関数 (Windows バージョン)
ウィンドウ|関数
最近 Excel を mysql に変換することについて書いていて、phpx フォーラムを検索したところ、そのような投稿はありませんでしたので、次のように再投稿しました:
PHP4 (Windows バージョン)
はじめに
組み込み PHP4 の COM 関数は、win32 環境でプログラムを開発するのに非常に魅力的ですが、関連する技術文書はまだ多くありません。この記事では、MS office 2000 Word、Excel、および Adobe 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 を使用して Adobe 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 を組み合わせることで、オープンソース ソリューションが提供されます。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











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

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

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

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

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

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

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

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