この記事では、ネイティブ PHP で Excel ファイルを読み書きする方法を主に紹介し、ネイティブ PHP を使用して Excel ファイルを読み書きする際の関連実装方法と操作上の注意点をサンプルの形で分析します。以下
この記事の例では、ネイティブ PHP で Excel ファイルを読み書きする方法を分析します。詳細は次のとおりです。
最近、仕事でデータベース内のデータを Excel ファイルにエクスポートしてダウンロードする必要がありました。ファイル。これまでやったことがなかったので、インターネット上のほとんどの人が PHPExcel クラスを使用して Excel ファイルを操作することについて話していますが、私はそれを使用する前にこのクラスをダウンロードする必要があります。幸いにも、ネイティブ PHP を使用して Excel ファイルを生成する方法について話している人もいます。オンライン情報に基づいて私が実践したコードを共有します。
通常、データ インポート操作は、ユーザーが Web ページ上のボタンをクリックして対応する js メソッドをトリガーし、php インターフェイスをリクエストすることによって実装されます。したがって、この要件を完了するには 2 つの主な方法があります。 。
方法 1: js コード内で window.open()
を直接使用して、PHP インターフェイスの URL を開き、生成された Excel ファイルをダウンロードできます。 php.
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()
を使用してファイル パスを開いてダウンロードします。
php インターフェイス コードは次のとおりです:
$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 つのメソッドは非常に似ており、どちらもデータベース内のデータを Excel にエクスポートできます。ファイルを作成し、ファイルをダウンロードします。ファイルの最終的なスクリーンショットは次のとおりです。
必要に応じて、ネイティブ PHP を使用して Excel ファイルの内容を読み取ることもできます。主に Excel ファイルを次の形式に変換するために使用されます。データはデータベースにインポートされます。
コードは次のとおりです: (ここでは、ファイル データを配列に読み取る方法のみを示します)
$path = './country.xls'; $file = fopen($path, 'r'); //标题行读取(第一行) $row = fgets($file); $row = explode("\t", $row); $title = array(); foreach($row as $k => $v) { $title[$k] = str_replace("\n", '', $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 '<pre class="brush:php;toolbar:false">'; print_r($data);
ただし、生成された Excel を使用します。 by ネイティブ php ファイルに問題があります。つまり、ファイルを編集した後に保存するたびに、次のスクリーンショットが常に表示されます。 ファイル自体に問題がある可能性があります。 。 。
そして、ネイティブ PHP を使用して生成された Excel ファイルを読み取ると、中国語の文字化けなどの奇妙な状況が発生します。したがって、特定の状況下でのみネイティブ PHP を使用して Excel ファイルを生成することをお勧めします。ファイルを変更したり読み取ったりすることなく、簡単に表示できるようデータベースからファイルにデータをエクスポートするだけです。この場合、ネイティブ PHP を使用して Excel を生成するだけで十分にニーズを満たすことができ、Excel を操作するためにサードパーティのライブラリを使用する手間が省けます。ただし、ファイルの生成後にデータの変更、保存、読み取りが必要な場合は、phpexcel などのサードパーティ ライブラリを使用して読み取りおよび書き込み操作を実行するだけでよく、これにより多くの複雑な問題を回避できます。
上記がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。 関連する推奨事項:PHP をベースに Excel または CSV にエクスポートする方法
#以上がネイティブPHPでExcelファイルを読み書きする方法についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。