ホームページ >バックエンド開発 >PHPチュートリアル >ネイティブ PHP を使用して Excel ファイルを読み書きする方法に関する PHP スキルの分析

ネイティブ PHP を使用して Excel ファイルを読み書きする方法に関する PHP スキルの分析

jacklove
jackloveオリジナル
2018-06-26 17:20:012160ブラウズ

この記事では、ネイティブ 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 &#39;<pre class="brush:php;toolbar:false">&#39;;
print_r($data);

ただし、生成された Excel を使用します。 by ネイティブ php ファイルに問題があります。つまり、ファイルを編集した後に保存するたびに、次のスクリーンショットが常に表示されます。 ファイル自体に問題がある可能性があります。 。 。

そして、ネイティブ PHP を使用して生成された Excel ファイルを読み取ると、中国語の文字化けなどの奇妙な状況が発生します。したがって、特定の状況下でのみネイティブ PHP を使用して Excel ファイルを生成することをお勧めします。ファイルを変更したり読み取ったりすることなく、簡単に表示できるようデータベースからファイルにデータをエクスポートするだけです。この場合、ネイティブ PHP を使用して Excel を生成するだけで十分にニーズを満たすことができ、Excel を操作するためにサードパーティのライブラリを使用する手間が省けます。ただし、ファイルの生成後にデータの変更、保存、読み取りが必要な場合は、phpexcel などのサードパーティ ライブラリを使用して読み取りおよび書き込み操作を実行するだけでよく、これにより多くの複雑な問題を回避できます。

#興味があるかもしれない記事:

PHP デザイン パターン シングルトン パターンの原理と実装方法の分析 PHP スキル

#PHP デザイン パターン プロトタイプ デザイン パターンの原則と使用法の分析 PHP スキル


##Laravel での SMS 検証コード送信の実装方法 PHP の例

## #############################

以上がネイティブ PHP を使用して Excel ファイルを読み書きする方法に関する PHP スキルの分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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