検索
ホームページバックエンド開発PHPチュートリアルネイティブPHPでExcelファイルを読み書きする方法について
ネイティブPHPでExcelファイルを読み書きする方法についてJun 19, 2018 pm 04:14 PM
エクセルファイルphp読み書き

この記事では、ネイティブ 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 中国語 Web サイトをご覧ください。

関連する推奨事項:

PHP をベースに Excel または CSV にエクスポートする方法

ThinkPHP3 でのウィジェットの使用について.1


#

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

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

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

php怎么实现几秒后执行一个函数php怎么实现几秒后执行一个函数Apr 24, 2022 pm 01:12 PM

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php怎么除以100保留两位小数php怎么除以100保留两位小数Apr 22, 2022 pm 06:23 PM

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

php怎么根据年月日判断是一年的第几天php怎么根据年月日判断是一年的第几天Apr 22, 2022 pm 05:02 PM

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php怎么替换nbsp空格符php怎么替换nbsp空格符Apr 24, 2022 pm 02:55 PM

方法:1、用“str_replace("&nbsp;","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\&nbsp\;||\xc2\xa0)/","其他字符",$str)”语句。

php怎么判断有没有小数点php怎么判断有没有小数点Apr 20, 2022 pm 08:12 PM

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

php字符串有没有下标php字符串有没有下标Apr 24, 2022 am 11:49 AM

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php怎么查找字符串是第几位php怎么查找字符串是第几位Apr 22, 2022 pm 06:48 PM

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。

See all articles

ホット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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

メモ帳++7.3.1

メモ帳++7.3.1

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

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません