今回は、ネイティブphpを使用してExcelファイルを読み書きする手順について詳しく説明します。ネイティブphpを使用してExcelファイルを実装する場合の注意事項は何ですか?実際のケースを見てみましょう。
最近、仕事でデータベース内のデータを Excel ファイルにエクスポートし、その Excel ファイルをダウンロードする必要がありました。これまでやったことがなかったので、インターネット上のほとんどの人が Excel ファイルを操作するために PHPExcel クラスを使用していると述べていましたが、私はこのクラスをダウンロードする必要がありました。幸いにも、ネイティブ PHP を使用して Excel ファイルを生成する方法について話している人もいます。オンライン情報に基づいて私が実践したコードを共有しましょう。
一般に、データのインポート操作は、ユーザーが Web ページ上のボタンをクリックして対応する js メソッドをトリガーし、その後 php インターフェイスをリクエストすることによって実装されます。そのため、この要件を完了するには 2 つの主な方法があります。
方法 1: js コード内で window.open()
を直接使用して、php インターフェイスの URL を開き、php によって生成された Excel ファイルをダウンロードできます。 window.open()
打开php接口的url,即可将php生成的excel文件下载下来。
php接口代码如下:
$mysqli = mysqli_connect('localhost', 'root', '123456', 'test'); $sql = 'select * from country'; $res = mysqli_query($mysqli, $sql); header("Content-type:application/vnd.ms-excel"); header("Content-Disposition:filename=country.xls"); echo "code\t"; echo "name\t"; echo "population\t\n"; if(mysqli_num_rows($res) > 0) { while($row = mysqli_fetch_array($res)) { echo $row['code']."\t"; echo $row['name']."\t"; echo $row['population']."\t\n"; } }
方法2:php接口中先把生成的excel文件保存在服务器中,然后把文件路径返回给js,js再使用window.open()
$mysqli = mysqli_connect('localhost', 'root', '123456', 'test'); $sql = 'select * from country'; $res = mysqli_query($mysqli, $sql); $file = fopen('./country.xls', 'w'); fwrite($file, "code\tname\tpopulation\t\n"); if(mysqli_num_rows($res) > 0) { while($row = mysqli_fetch_array($res)) { fwrite($file, $row['code']."\t".$row['name']."\t".$row['population']."\t\n");//这里写得不好,应该把所有文件内容组装到一个字符串中然后一次性写入文件。 } } fclose($file); echo 'http://www.jtw.com/....../country.xls';//这里返回文件路径给js
方法 2:
php インターフェースは、まず生成された Excel ファイルをサーバーに保存し、次にファイル パスを js に返し、js はwindow.open を使用します。 () code>ダウンロードするファイル パスを開きます。 <p style="text-align: left;"><img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/061/021/22dc9f3ce32e2ce3d06803591b8da4cb-0.png?x-oss-process=image/resize,p_40" class="lazy" alt="">PHP インターフェイス コードは次のとおりです: </p><pre class='brush:php;toolbar:false;'>$path = &#39;./country.xls&#39;;
$file = fopen($path, &#39;r&#39;);
//标题行读取(第一行)
$row = fgets($file);
$row = explode("\t", $row);
$title = array();
foreach($row as $k => $v) {
$title[$k] = str_replace("\n", &#39;&#39;, $v);
}
//内容读取
$data = array();
$count = 0;
while(!feof($file)) {
$row = fgets($file);
$row = explode("\t", $row);
if(!$row[0]) continue;//去除最后一行
foreach($title as $k => $v) {
$data[$count][$title[$k]] = $row[$k];
}
$count ++;
}
fclose($file);
echo &#39;<pre class="brush:php;toolbar:false">&#39;;
print_r($data);</pre><p style="text-align: left;"> 2 つのメソッドは非常に似ており、データベース内のデータを Excel ファイルにエクスポートし、ファイルをダウンロードできます。最終的なファイルのスクリーンショットは次のとおりです。必要に応じて、ネイティブ PHP を使用して Excel ファイルの内容を読み取ることもできます。これは主に Excel ファイル内のデータをデータベースにインポートする必要がある場合に使用されます。 </p>
<p style="text-align: left;">コードは次のとおりです: (ここではファイルデータを配列に読み取る方法のみを示します)</p>rrreee<p style="text-align: left;"> ただし、ネイティブ PHP を使用して生成された Excel ファイルには問題があります。つまり、ファイルを保存するときに常にこの問題が表示されます。以下のスクリーンショットの問題: </p>
<p style="text-align: left;"><img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/061/021/22dc9f3ce32e2ce3d06803591b8da4cb-1.png?x-oss-process=image/resize,p_40" class="lazy" alt=""></p>
<p style="text-align: left;"> 原因はわかりませんが、生成されたファイル自体に問題があるのかもしれません。 。 。 </p>
<p style="text-align: left;">そして、生成された Excel ファイルをネイティブ PHP を使用して読み取ると、中国語の文字化けなどの奇妙な状況が発生します。したがって、特定の状況下でのみネイティブ PHP を使用して Excel ファイルを生成することをお勧めします。ファイルを変更したり読み取ったりすることなく、簡単に表示できるようデータベースからファイルにデータをエクスポートするだけです。この場合、ネイティブ PHP を使用して Excel を生成するだけで十分にニーズを満たすことができ、Excel を操作するためにサードパーティのライブラリを使用する手間が省けます。ただし、ファイルの生成後にデータの変更、保存、読み取りが必要な場合は、phpexcel などのサードパーティ ライブラリを使用して読み取りおよび書き込み操作を実行するだけでよく、これにより多くの複雑な問題を回避できます。 </p>
<p>この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。 </p>
<p>推奨読書: </p>
<p><a href="http://www.php.cn/php-weizijiaocheng-396381.html" target="_blank">laravel SMS認証コード機能を実装する手順の詳細な説明</a><br></p>
<p><a href="http://www.php.cn/php-weizijiaocheng-396385.html" target="_blank">PHPシングルトンモードのユースケースの詳細な説明</a><br></p>
以上がネイティブPHPを使用してExcelファイルを読み書きする手順の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

phpssionsStrackuserdataacrossmultiplepagerequestsusingauniqueidstoredinacookie.here'showtomanageetheemefectively:1)Startassession withsession_start()andstoredatain $ _ session.2)RegeneratesseSsessidafterloginwithsession_id(the topreventes_id)

PHPでは、次の手順を通じてセッションデータを繰り返すことができます。1。session_start()を使用してセッションを開始します。 2。$ _Sessionアレイのすべてのキー価値ペアを介してforeachループを反復します。 3.複雑なデータ構造を処理する場合、is_array()またはis_object()関数を使用し、print_r()を使用して詳細情報を出力します。 4.トラバーサルを最適化する場合、ページングを使用して、一度に大量のデータの処理を避けることができます。これにより、実際のプロジェクトでPHPセッションデータをより効率的に管理および使用するのに役立ちます。

このセッションは、サーバー側の状態管理メカニズムを介してユーザー認証を実現します。 1)セッションの作成と一意のIDの生成、2)IDはCookieを介して渡されます。3)サーバーストアとIDを介してセッションデータにアクセスします。

tostoreauser'snameInappession、starthessession withsession_start()、thensignthenameto $ _session ['username']。1)ousession_start()toinitializethessession.2)assighttheuser'snameto $ _ session ['username']

PHPSESSIONの障害の理由には、構成エラー、Cookieの問題、セッションの有効期限が含まれます。 1。構成エラー:正しいセッションをチェックして設定します。save_path。 2.Cookieの問題:Cookieが正しく設定されていることを確認してください。 3.セッションの有効期限:セッションを調整してください。GC_MAXLIFETIME値はセッション時間を延長します。

PHPでセッションの問題をデバッグする方法は次のとおりです。1。セッションが正しく開始されるかどうかを確認します。 2.セッションIDの配信を確認します。 3.セッションデータのストレージと読み取りを確認します。 4.サーバーの構成を確認します。セッションIDとデータを出力し、セッションファイルのコンテンツを表示するなど、セッション関連の問題を効果的に診断して解決できます。

session_start()への複数の呼び出しにより、警告メッセージと可能なデータ上書きが行われます。 1)PHPは警告を発し、セッションが開始されたことを促します。 2)セッションデータの予期しない上書きを引き起こす可能性があります。 3)session_status()を使用してセッションステータスを確認して、繰り返しの呼び出しを避けます。

PHPでのセッションライフサイクルの構成は、session.gc_maxlifetimeとsession.cookie_lifetimeを設定することで達成できます。 1)session.gc_maxlifetimeサーバー側のセッションデータのサバイバル時間を制御します。 0に設定すると、ブラウザが閉じているとCookieが期限切れになります。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

ホットトピック









