PHP は Excel ファイルをアップロードしてデータを MySQL データベースにインポートします

不言
リリース: 2023-03-30 11:44:01
オリジナル
9945 人が閲覧しました

この記事では主に、PHP を使用して Excel ファイルをアップロードし、MySQL データベースにデータをインポートする例を紹介します。興味のある学生は、それについて学ぶことができます。

最近、Excelファイルからデータベースにデータをインポートしています。 Web サイトでデータのバッチ挿入をサポートしたい場合は、Excel ファイルをアップロードし、データ コンテンツを MySQL データベースにインポートする小さなプログラムを作成できます。

使用ツール:

ThinkPHP: 国産軽量PHP開発フレームワーク。 ThinkPHP 公式 Web サイトからダウンロードできます。

PHPExcel: Microsoft の OpenXML 標準および PHP 言語に基づいた、Office Excel ドキュメント用の PHP クラス ライブラリ。 CodePlex 公式 Web サイトからダウンロードできます。 ,

1. MySQLデータベースプロダクトを設計します

プロダクトデータベースを作成します

CREATE DATABASE product DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
ログイン後にコピー

pro_infoテーブル、テーブル構造を作成します

CREATE TABLE pro_info( pId int(4) NOT NULL PRIMARY KEY AUTO_INCREMENT, pName varchar(20) NOT NULL, pPrice float NOT NULL, pCount float NOT NULL );
ログイン後にコピー

2.まず同じディレクトリに新しいindex.phpを作成しますThinkPHP ファイルとして、プロジェクト Home.

ログイン後にコピー

を生成します。 3. ファイル フォームをアップロードします

Home/Tpl フォルダーの下に新しい Index フォルダーを作成し、その中に新しい Index.html ファイルを作成します

   上传文件  
  

ログイン後にコピー

4. /Lib/Action/IndexAction.class アップロードフォームページの表示、Excel ファイルのアップロード、Excel ファイルのインポートを行うメソッドを .php に記述します (ThinkPHP/Extend 配下に拡張パッケージがない場合は、ThinkPHP 公式 Web サイトからダウンロードする必要があります) 、拡張パッケージを解凍して入れます)

display(); } /** * 上传Excel文件 */ public function upload() { //引入ThinkPHP上传文件类 import('ORG.Net.UploadFile'); //实例化上传类 $upload = new UploadFile(); //设置附件上传文件大小200Kib $upload->mixSize = 2000000; //设置附件上传类型 $upload->allowExts = array('xls', 'xlsx', 'csv'); //设置附件上传目录在/Home/temp下 $upload->savePath = './Home/temp/'; //保持上传文件名不变 $upload->saveRule = ''; //存在同名文件是否是覆盖 $upload->uploadReplace = true; if (!$upload->upload()) { //如果上传失败,提示错误信息 $this->error($upload->getErrorMsg()); } else { //上传成功 //获取上传文件信息 $info = $upload->getUploadFileInfo(); //获取上传保存文件名 $fileName = $info[0]['savename']; //重定向,把$fileName文件名传给importExcel()方法 $this->redirect('Index/importExcel', array('fileName' => $fileName), 1, '上传成功!'); } } /** * * 导入Excel文件 */ public function importExcel() { header("content-type:text/html;charset=utf-8"); //引入PHPExcel类 vendor('PHPExcel'); vendor('PHPExcel.IOFactory'); vendor('PHPExcel.Reader.Excel5'); //redirect传来的文件名 $fileName = $_GET['fileName']; //文件路径 $filePath = './Home/temp/' . $fileName . '.xlsx'; //实例化PHPExcel类 $PHPExcel = new PHPExcel(); //默认用excel2007读取excel,若格式不对,则用之前的版本进行读取 $PHPReader = new PHPExcel_Reader_Excel2007(); if (!$PHPReader->canRead($filePath)) { $PHPReader = new PHPExcel_Reader_Excel5(); if (!$PHPReader->canRead($filePath)) { echo 'no Excel'; return; } } //读取Excel文件 $PHPExcel = $PHPReader->load($filePath); //读取excel文件中的第一个工作表 $sheet = $PHPExcel->getSheet(0); //取得最大的列号 $allColumn = $sheet->getHighestColumn(); //取得最大的行号 $allRow = $sheet->getHighestRow(); //从第二行开始插入,第一行是列名 for ($currentRow = 2; $currentRow <= $allRow; $currentRow++) { //获取B列的值 $name = $PHPExcel->getActiveSheet()->getCell("B" . $currentRow)->getValue(); //获取C列的值 $price = $PHPExcel->getActiveSheet()->getCell("C" . $currentRow)->getValue(); //获取D列的值 $count = $PHPExcel->getActiveSheet()->getCell("D" . $currentRow)->getValue(); $m = M('Info'); $num = $m->add(array('pName' => $name, 'pPrice' => $price, 'pCount' => $count)); } if ($num > 0) { echo "添加成功!"; } else { echo "添加失败!"; } } } ?>
ログイン後にコピー
5. テスト

関連する推奨事項:

ThinkPHP3.2.2 プラグイン コントローラー機能

以上がPHP は Excel ファイルをアップロードしてデータを MySQL データベースにインポートしますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!