ホームページ > バックエンド開発 > PHPチュートリアル > PHPのExcelファイル(.csv)読み込み例紹介_PHPチュートリアル

PHPのExcelファイル(.csv)読み込み例紹介_PHPチュートリアル

WBOY
リリース: 2016-07-13 10:46:52
オリジナル
1147 人が閲覧しました

csvファイルはプレーンテキストファイルですが、Excelファイルで開くことでExcelファイルとして利用することができます。 Excelを読み込む際によく使われるPHPの例をいくつかまとめておきます。

PHP には独自の Analysis.csv 関数があります: fgetcsv

array fgetcsv ( int $handle [, int $length [, string $delimiter [, string $enclosure]]] )
handle fopen()、popen()、または fsockopen() によって生成される有効なファイル ポインター。
長さ (オプション) は、CVS ファイル内の最長の行より大きくなければなりません。このパラメータは、PHP 5 ではオプションです。このパラメータを省略した場合(PHP 5.0.4 以降では 0 に設定)、長さに制限はありませんが、実行効率に影響する可能性があります。
delimiter (オプション) はフィールドの区切り文字 (1 文字のみ使用可能) を設定します。デフォルト値はカンマです。
enclosure (オプション) はフィールドの折り返し文字 (1 文字のみ使用可能) を設定します。デフォルト値は二重引用符です。このパラメータは PHP 4.3.0 で追加されました。 fgets() と似ていますが、fgetcsv() は読み取った行を解析し、CSV 形式でフィールドを検索し、それらのフィールドを含む配列を返します。
fgetcsv() は、ファイルの終わりに達した場合など、エラーが発生した場合に FALSE を返します。
注: CSV ファイル内の空の行は、単一の null フィールドを含む配列として返され、エラーとして扱われません。

コードは次のとおりです コードをコピー

$行 = 1; $handle = fopen("test.csv","r"); while ($data = fgetcsv($handle, 1000, ",")) {
$num = カウント($data); エコー「
」 $row:n 行目の $num 個のフィールド";
$行++
for ($c=0; $c < $num; $c++) {
エコー $data[$c]
; }
}
fclose($ハンドル); ?>



例 2

Baidu 統計およびウェブマスター ツールの使用には多くの CSV ファイルが含まれます。たとえば、Baidu ウェブマスター ツールの 404 統計をダウンロードする場合、次の PHP スクリプトを直接使用して CSV ファイルを読み取り、更新して送信できます。


PHP は Excel ファイル (.csv) 参照コードを読み取ります:

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/632917.html技術記事 csvファイルはプレーンテキストファイルですが、Excelファイルで開くことでExcelファイルとして利用することができ、Excelを読み込む際によく使われるPHPの例をいくつかまとめておきます。 PHP には独自の Analysis.csv 関数があります...
コードは次のとおりです コードをコピー
関数 getCSVdata($filename)
{
$row = 1 //最初の行から開始します
If(($handle = fopen($filename, "r")) !== false)
{
while(($dataSrc = fgetcsv($handle)) !== false)
                                                                          $num = count($dataSrc); for ($c=0; $c < $num; $c++)//column カラム
                                                                 If($row === 1)//最初の行はフィールドとして使用されます
                                                                           $dataName[] = $dataSrc[$c];//フィールド名
                                                                                              それ以外                                                                            foreach ($dataName as $k=>$v)
                                                                                        If($k == $c)//対応するフィールド
                                                                                         $data[$v] = $dataSrc[$c];                                                                                                                                                                                                                                                                                                                                                        If(!empty($data))
                                                                 $dataRtn[] = $data; unset($ data);                                                                                                                                                                                                                                fclose($handle); $dataRtn を返します。 }
}

$aData = getCSVdata('all_www.bKjia.c0m .csv');
foreach ($aData as $k=>$v ){
echo "http://".$v['a']."
";
}
?>


PHPカスタムクラス

利点: クロスプラットフォーム。一部のクラスは書き込み操作をサポートします。 .xls バイナリ ファイルをサポート
一般的に使用されるクラスには、phpExcelReader や PHPExcel などがあります。後者は読み取りと書き込みをサポートしますが、php5.2 以降が必要です。

phpExcelReader は、ファイルを読み取るために特別に使用されます。テーブルのすべての内容を含む配列を返します。
このクラスで使用されるメソッドは、Web サイトからダウンロードした圧縮ファイルの example.php にあります。

例 3.php データの Excel へのインポートとエクスポート

CVS をアップロードしてデータベースにインポートすると、テストは成功します (

として書き換える必要がある PHP_SELF など、一部のコードは標準化されていません)

phpを使用してデータベースをExcelにエクスポートすると、テストは完全に成功しました
コードは次のとおりです コードをコピー

$_SERVER["PHP_SELF"] )
PHPコード
$fname = $_FILES['MyFile']['name'];
$do = copy($_FILES['MyFile']['tmp_name'],$fname);
if ($do)
{
echo「データを正常にインポートしました
」 ";
} その他 {
エコー「」;
}
?>

" CVS データをインポート

エラー報告(0);
//CSV形式でファイルをインポートします
$connect=mysql_connect("localhost","a0530093319","123456") または die("データベースに接続できませんでした");
mysql_select_db("a0530093319",$connect) or die (mysql_error());
$fname = $_FILES['MyFile']['name'];
$handle=fopen("$fname","r");
while($data=fgetcsv($handle,10000,","))
{
$q="テスト (コード、名前、日付) 値に挿入 ('$data[0]','$data[1]','$data[2]')";
mysql_query($q) か死ぬか (mysql_error());
}
fclose($handle);
?>

PHPコード

コードは次のとおりです $DB_Server = www.bKjia.c0m //これがデータ接続です

; $DB_ユーザー名 = "a0530093319";
$DB_Password = "123456";
$DB_DBName = "a0530093319";
$DB_TBLName = "メンバー";
$savename = date("YmjHis");
$Connect = @mysql_connect($DB_Server, $DB_Username, $DB_Password)
さもなければ死ぬ(「接続できませんでした。」);
mysql_query("名前を設定 'gb2312'");
$file_type = "vnd.ms-excel";
$file_ending = "xls";
header("Content-Type: application/$file_type");
header("Content-Disposition:attachment; filename=".$savename.".$file_ending");
header("プラグマ: キャッシュなし");
header("有効期限: 0");
$now_date = date("Y-m-j H:i:s");
$title = "データベース名: $DB_DBName、データテーブル: $DB_TBLName、バックアップ日: $now_date";
$sql = "$DB_TBLName から * を選択";
$ALT_Db = @mysql_select_db($DB_DBName, $Connect)
または die("データベースを選択できませんでした");
$result = @mysql_query($sql,$Connect)
または die(mysql_error());
echo("$title ");
$sep = " ";
for ($i = 0; $i echo mysql_field_name($result,$i) " ";
}
print(" ");
$i = 0;
while($row = mysql_fetch_row($result)) {
$schema_insert = "";
for($j=0; $j if(!isset($row[$j]))
$schema_insert .= "NULL".$sep;
elseif ($row[$j] != "")
$schema_insert .= "$row[$j]".$sep;
それ以外
$schema_insert .= "".$sep;
}
$schema_insert = str_replace($sep."$", "", $schema_insert);
$schema_insert .= " ";
print(trim($schema_insert));
「 」を印刷します;
$i++;
}
return (true);
?>

コードをコピー
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート