PHPExcel (百科事典: Microsoft の OpenXML 標準と PHP 言語に基づいて、Office Excel ドキュメントを操作するために使用される PHP クラス ライブラリ) を使用して、簡単な Excel インポートを作成しました
さて、もうやめましょう...
まずはあなたPHPExcel クラス ライブラリが必要です。ここをクリックして https://github.com/Zmwherein/PHPExcel.git をダウンロードします
次に、それを ThinkPHPLibraryVendor に置きます (個人的な好みで、インポートするだけです)
以下に示すように:
PHPExcel.phpエントリーファイルに似ています。そこに書かれたメソッドがどのように実行されるかを確認できます...
これがインターフェースです:
まず、ファイルがアップロードされているかどうかを判断しましょう(実際には)。 、ここのものはまだ機能するはずです)最適化してより良く書くことができますが、当面は私の個人的な能力には限界があります)
1 public function import() 2 { 3 // p($data_in_db); 4 if ( ! empty($_FILES)) 5 { 6 $upload = new \Think\Upload(); 7 $upload -> maxSize = 3145728 ; 8 $upload -> exts = array('xlsx', 'xls'); 9 $upload -> rootPath = './'; // 设置附件上传根目录 10 $upload -> savePath = '/Upload/excel/'; // 设置附件上传(子)目录 11 $upload -> subName = false; 12 $upload -> saveName = 'time'; 13 14 $info = $upload -> uploadOne($_FILES['import']); 15 16 if( ! $info) 17 { 18 $this->error($upload->getError()); 19 }
次に、2つのファイルPHPExcel.phpとPHPExcel/IOFactoryを実行してインポートしました.php
1 //导入PHPExcel 和 IOFactory类 2 Vendor('PHPExcel.PHPExcel'); 3 Vendor('PHPExcel.PHPExcel.IOFactory');
インポートなのでcreateReaderメソッドを呼び出します
$objReader = \PHPExcel_IOFactory::createReader('Excel5');
アップロードされたファイルがどこにあるか、つまりロードするパスを設定しますファイル
$objPHPExcel = $objReader -> load($file_path, $encode='utf-8');
ここで話しているのは、A から E までの走査される行数です (自分で定義し、好きな方を選択してください) 最初の行は 2 から始める必要があります。はヘッダーであり、データではありません
1 $sheet = $objPHPExcel -> getSheet(0); 2 $highestRow = $sheet -> getHighestRow(); // 取得总行数 3 // p($highestRow); 4 // $highestColumn = $sheet->getHighestColumn(); // 取得总列数 5 6 for($i=2;$i getActiveSheet() -> getCell("A".$i)->getValue(); 9 $data['company'] = $objPHPExcel -> getActiveSheet() -> getCell("B".$i)->getValue(); 10 $data['mobile'] = $objPHPExcel -> getActiveSheet() -> getCell("C".$i)->getValue(); 11 $data['category'] = $objPHPExcel -> getActiveSheet() -> getCell("D".$i)->getValue(); 12 $data['mark'] = $objPHPExcel -> getActiveSheet() -> getCell("E".$i)->getValue(); 13 14 $allData[] = $data; 15 } 16 // p($allData);
テストテーブルは次のようになります
$allDataを出力して確認してください
ほら、データが出てきました...
次のステップは、それをデータベースにインポートすることです - >たとえば、データベース内の電話番号がインポートしたいデータと同じかどうかを判断する必要があります。インポート、このようなものはインポートしたくないです -> 誰かより良い方法を持っていますか
1 if (empty($allData)) 2 { 3 $this -> error(C('MESSAGE.ERROR_NODATA')); 4 } 5 $data_in_db = M('Excel') -> field('mobile') -> select();//表Excel里所有数据 6 foreach ($data_in_db as $key => $val) 7 { 8 foreach ($allData as $k => $v) 9 { 10 if ($val['mobile'] == $v['mobile']) 11 { 12 unset($allData[$k]); 13 } 14 } 15 }
インポートするとき、2つの方法があります: 1つはSQLを結合することであり、もう1つはforeach ループを使用してインポートします
最初の方法の方がはるかに高速です!!! SQL を結合してインポートすることを強くお勧めします...ただし、インポートされたデータが大きすぎて、結合された SQL が非常に長くなる場合があります。データは比較的大きくなります...
場合によっては、実行ファイルのタイムアウト エラーが報告されるか、「1153 – ‘max_allowed_packet」バイトを超えた場合、または
このようなエラーが報告されます。
この場合、my.ini の max_allowed_packet を変更して少し大きく設定する必要があります。MySql を再起動します OK.. しばらく待つと、ほぼ 2W のデータがインポートされます (^_^)。1 $sql = "INSERT INTO `db_excel` (". implode(',',array_keys($allData[0])) .") VALUES "; 2 foreach ($allData as $key => $val) 3 { 4 $sql .= "("; 5 $sql .= "'".implode("','", $val)."'"; 6 $sql .= "),"; 7 } 8 $sql = rtrim($sql,','); 9 // 出错返回false 否则返回成功行数 10 $res = D('Excel') -> execute($sql); 11 if ($res === false) 12 { 13 $this -> error(C('MESSAGE.ERROR_IMPORT')); 14 } 15 else if ($res > 0) 16 { 17 $this -> success(C('MESSAGE.SUCCESS_IMPORT'), U('Excel/index')); 18 } 19 else if ($res === 0) 20 { 21 $this -> success(C('MESSAGE.SUCCESS_IMPORT_0'), U('Excel/index')); 22 }
まだ多くの欠点がありますが、よろしくお願いします。
上記は、PHPExcel を使用して Excel をインポートする Thinkphp の内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。
ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

ホットトピック









