ホームページ バックエンド開発 PHPチュートリアル phpexcel を使用して Excel データをインポートする方法の例_PHP チュートリアル

phpexcel を使用して Excel データをインポートする方法の例_PHP チュートリアル

Jul 13, 2016 pm 05:18 PM
excel phpexcel 説明書 輸入 意思 データ 書類 読む 戻る 行為 間違い

Excelファイルのデータを読み取り、エラー情報を返します

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

/**
* 基本的な製品情報をインポートします
*/
public function importProductBasicInfo($data){
include_once 'PHPExcel.php';
include_once 'PHPExcel/IOFactory.php';
include_once 'PHPExcel/Reader/Excel5.php'; // エラー コレクションを定義します。
$error = array() $resultInfo = null; $ FilePath = CBASE_COMMON_UPLOADPICTURE :: UploadFile ["製品情報"]、' 製品 ' ); = 1) {$ error[1] = "アップロードされたファイルは php.ini の Upload_max_filesize オプションの制限を超えています";
}else if($filePath == 4){
$error[4] = "いいえファイルがアップロードされました";
}else{
$objReader = PHPExcel_IOFactory::createReader('Excel5');
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load($filePath);
$objWorksheet = $objPHPExcel-> ;getActiveSheet();
$highestRow = $objWorksheet->getHighestRow();
$highestColumn = $objWorksheet->getHighestColumn();
$highestColumnIndex = FromString($highestColumn);
$colums = array( );
$data = array();
$excelAllId = array();
$excelIdRow = array();
$execlAllShopLinkedId = array();
($i=0;$i $cValue = trim($objWorksheet->getCellByColumnAndRow($i,1)->getValue());
switch ($cValue) {
case self::PRODUCT_SAP_コード: $colums[$i] = " sap_コード"; Break;
case self::PRODUCT_NAME : $colums[$i] = "pname"; Break;
case self::PRODUCT_GROUP : $colums[$i] = "product_group"; Break;
case self::PRODUCT_BRAND : $colums[$i] = 'product_brand'; Break;
case self::PRODUCT_PROXY_FLAG : $colums[$i] = "product_proxy_flag"; Break;
case self::PRODUCT_BINNING : $colums[$i] = "product_binning"; Break;
case self::PRODUCT_SELL_PICK : $colums[$i] = "product_sell_pick"; Break;
case self::PRODUCT_ATTRIBUTE : $colums[$i] = "product_attribute"; Break;
case self::PRODUCT_SUPPLIER_CODE : $colums[$i] = "vendor_code"; Break;
case self::PRODUCT_SUPPLY_ADDRESS : $colums[$i] = "zzwerk_code"; Break;
case self::PRODUCT_BATCH : $colums[$i] = "zzlgort_code"; Break;
デフォルト : $error[3][] = $cValue; Break;
}
}
//Excel 内の基本情報が存在するかどうか
$dataCount = $highestRow - 1;
if(count($colum s) == 0) {
$error[5] = "没有表头";
}
else if(!in_array('sap_code',$colums)){
$error[2] = "表头中商品SAP编码不存在";
}
else if($dataCount $error[6] = "Excel文件中有データ";
}
else if(count($error)==0){
for ($i=2 ;$i<=$highestRow;$i++){
$colkey = array_search('sap_code');
$shopLinkedIdValue =rim($objWorksheet->getCellByColumnAndRow($colkey,$i)->get値());
if(!$shopLinkedIdValue) {
continue;
}
if($shopLink edIdValue,$execlAllShopLinkedId)){
$error[7][$shopLinkedIdValue]['重複'] = true;
$error[7] [$shopLinkedIdValue]['excelRow'][] = $i;
$execlAllShopLinkedId[$i] = $shopLinkedIdValue;
$error[7][$shopLinkedIdValue]['noId'] = true;
}else {
$ ExcelIdRow[$shopLinkedIdValue] = $i;
$execlAllShopLinkedId[$i] = $shopLinkedIdValue;
}
}
$dealMultiple = ceil($dataCount / 1000);
$allProduct = array();
for($i= 0;$i<$dealMultiple;$i++){
$offset = $i*1000+2;
$max = ($i+1)*1000+1;
$max = ( $max > $dataCount) ? $highestRow : $max;
$allShopLinkedId = array();
for($j=$offset;$j<=$max;$j++){
if($execl AllShopLinkedId[$j]){
$allShopLinkedId[] = $execlAllShopLinkedId[$j];
}
}
// SAP 製品コードに従ってデータベース内のレコード数をクエリします。
for($ j=$offset;$j<=$max;$j++) {
$product = array();トリム($objWorksheet - &gt; getCellByColumnandRow($ k、$ j) - &gt; getValue());

] [emptyproductgroup '] = true; EERROR [7] [$ ID] ['Emptyproductbinning'] = true; isset($product['product_sell_pick'])){
//商品属性が空かどうか 'product_tribute'])){
空ですか?){$エラー[7] [$ id] ['emptyvendorcode'] = true;

emptyzzwerkcode '] = true;
;エラーメッセージ= $エラー[1]; resultinfo ['type']else if(isset($error[7])){
$excelName = null;
$objPHPWriteExcel = new PHPExcel();
$objPHPWriteExcel->getProperties()->setCreator("yuer")
                ->setLastModifiedBy("yuer")->setTitle("")->setSubject("")
                ->setDescription("")->setKeywords("")->setCategory("");
                $prefix = substr($fileName,0,strrpos($fileName,'.'));
                $suffix = substr($fileName,strrpos($fileName,'.'));
                $excelName = date("Y_m_d_H_i_s").'_'.mt_rand(1,99).'_'.$prefix.'ErrorReport'.$suffix;
                $excelName = Base_Tool_Pinyin::getPinyin($excelName);
                $objPHPWriteExcel->setActiveSheetIndex(0);
                $activeSheet = $objPHPWriteExcel->getActiveSheet();
                $activeSheet->setTitle('错误报告');
                $activeSheet->setCellValueByColumnAndRow(0,1,self::PRODUCT_SAP_CODE);
                $activeSheet->setCellValueByColumnAndRow(1,1,'原excel行号');
                $activeSheet->setCellValueByColumnAndRow(2,1,'第几行编码存在重复');
                $activeSheet->setCellValueByColumnAndRow(3,1,self::PRODUCT_NAME);
                $activeSheet->setCellValueByColumnAndRow(4,1,self::PRODUCT_GROUP);
                $activeSheet->setCellValueByColumnAndRow(5,1,self::PRODUCT_BRAND);
                $activeSheet->setCellValueByColumnAndRow(6,1,self::PRODUCT_PROXY_FLAG);
                $activeSheet->setCellValueByColumnAndRow(7,1,self::PRODUCT_BINNING);
                $activeSheet->setCellValueByColumnAndRow(8,1,self::PRODUCT_SELL_PICK);
                $activeSheet->setCellValueByColumnAndRow(9,1,self::PRODUCT_ATTRIBUTE);
                $activeSheet->setCellValueByColumnAndRow(10,1,self::PRODUCT_SUPPLIER_CODE);
                $activeSheet->setCellValueByColumnAndRow(11,1,self::PRODUCT_SUPPLY_ADDRESS);
                $activeSheet->setCellValueByColumnAndRow(12,1,self::PRODUCT_BATCH);
                $activeSheet->setCellValueByColumnAndRow(13,1,'其他原因');
                $activeSheet->getColumnDimensionByColumn(0)->setWidth(15);
                $activeSheet->getColumnDimensionByColumn(1)->setWidth(20);
                $activeSheet->getColumnDimensionByColumn(2)->setWidth(20);
                $activeSheet->getColumnDimensionByColumn(3)->setWidth(20);
                $activeSheet->getColumnDimensionByColumn(4)->setWidth(20);
$activeSheet->getColumnDimensionByColumn(5)->setWidth(20);
$activeSheet->getColumnDimensionByColumn(6)->setWidth( 20);
$activeSheet->getColumnDimensionByColumn(7)->setWidth(20);
$activeSheet->getColumnDimensionByColumn(8)->setWidth(20);
$activeSheet et->getColumnDimensionByColumn(9)- >setWidth(20);
$activeSheet->getColumnDimensionByColumn(10)->setWidth(20);
$activeSheet->getColumnDimensionByColumn(11)->setWidth(20);
$activeSheet->getColumnDimensionByColumn (12)->setWidth(20);
$activeSheet->getColumnDimensionByColumn(13)->setWidth(20);
$writeExcelIndex = 2;
foreach ($error[7] as $ pId=>$ pInfo){
if(isset($pInfo['hasId'])){
$activeSheet->setCellValueByColumnAndRow(0,$writeExcelIndex,$pId.'-此供应商编码已)存在');
} else {
$activeSheet->setCellValueByColumnAndRow(0,$writeExcelIndex,$pId);
}
$activeSheet->setCellValueByColumnAndRow(1,$writeExcelIndex,$pInfo['excelRow']) ;
if(isset($pInfo['duplicate '])){
$activeSheet->setCellValueByColumnAndRow(2,$writeExcelIndex,$excelIdRow[$pId]);
}
} if(isset($pInfo['emptyName'])){
$activeSheet->setCellValueByColumnAndRow (3,$writeExcelIndex,'-のため');
}
if(isset($pInfo['emptyProductGroup'])){
$activeSheet-> setCellValueByColumnAndRow(4,$writeExcelIndex,'-である空');
}
if(isset($pInfo['emptyProductBrand'])){
$activeSheet->setCellValueByColumnAndRow(5,$writeExcelIndex 、'-のため空');
}
if(isset($pInfo['emptyProductProxyFlag'])){
$activeSheet->setCellValueByColumnAndRow(6,$writeExcelIndex,'-のため');
}
if(isset($pInfo['emptyProductBinning']) ){
$activeSheet->setCellValueByColumnAndRow(7,$writeExcelIndex,'-である');
}
if(isset($pInfo[ 'emptyProductSellPick'])){
$activeSheet->setCellValueByColumnAndRow(8,$ writeExcelIndex,'-のため空');
}
if(isset($pInfo['emptyProductAttribute'])){
$activeSheet->setCell ValueByColumnAndRow(9,$writeExcelIndex,'-である');
}
if (isset($pInfo['emptyVendorCode'])){
$activeSheet->setCellValueByColumnAndRow(10,$writeExcelIndex,'-である空');
}
} if(isset($pInfo['emptyZzwerkCode'])){
$activeSheet->setCellValueByColumnAndRow(11,$writeExcelIndex,'-である');
}
if(isset($pInfo[' emptyZzlgortCode'])){
$activeSheet->setCellValueByColumnAndRow(12,$writeExcelIndex, '-である');
}

if(isset($pInfo['other'])){
$activeSheet->setCellValueByColumnAndRow( 13,$writeExcelIndex,$pInfp['other']);
}
$writeExcelIndex++;
}
$objWriter = PHPExcel_IOFactory::createWriter($objPHPWriteExcel, 'Excel5'); $excelPath = FILE_PATH.DS.'フィードバック'.DS.$excelName; $objWriter->save($excelPath); fo[ 'タイプ'] = 7;
$ resultinfo ['msg'] = $ ファイル名。 "ファイルにエラーがあります。"; $updateProductSql = 'ins ert を yr_product セットに入れる';
isset($pInfo['pname']) && Trim($pInfo['pname'])){
$updateProductSql = $updateProductSql.'pname=''.str_replace(''','''', $pInfo[ 'pname']).'',';
if(strlen ($pInfo['sap_code'])<18){
$updateProductSql = $updateProductSql.'.str_replace('' ,'''',$pInfo['sap_code']).'',';

$updateProductSql = $updateProductSql.'product_group =''.$pInfo['product_group'].'','; $updateProductSql = $updateProductSql.' product_brand=''.$pInfo['product_brand'].'','; ql.'product_proxy_flag=''.$pInfo ['product_proxy_flag'].'','; product_binning'].' ',';
}
if(isset($pInfo['product_sell_pick'])){
$updateProductSql = $updateProductSql.'product_sell_pick=''.$pInfo['product_sell_pick'].'',';
}
if(isset($pInfo ['product_attribute'])){
$updateProductSql = $updateProductSql.'product_attribute=''.$pInfo['product_attribute'].'',';
if( isset($pInfo['vendor_code'])) {
$updateProductSql = $updateProductSql.'vendor_code=''.$pInfo['vendor_code'].'',';
}
if(isset($pInfo['zzwerk_code '])){
$updateProductSql = $updateProductSql .'zzwerk_code=''.$pInfo['zzwerk_code'].'',';
}
if(isset($pInfo['zzlgort_code'])){
$updateProductSql = $ updateProductSql.'zzlgort_code=''。 $pInfo['zzlgort_code'].''';
}
//最後のSQL句
$result = $this->excuteMultiInsertSql($updateProductSql);
}
$resultInfo['type'] = 8;
$resultInfo['msg'] = "导入商品基本信息成功";

/*
* // 日志操作.
* $content = '批量新建商品导入操作成功:导入的提供应商品编码有-> ' ;
* $logData['content'] = $content.$logIds;
*/
}
return $resultInfo;
}

http://www.bkjia.com/PHPjc/621672.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/621672.html技術記事 Excel 文セキュリティを読み取って、その情報を返します。 /*** 基本的な製品情報をインポートします*/ public function importProductBasicInfo($data){ include_o...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

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

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Windows Update プロンプト エラー 0x8024401c エラーの解決策 Windows Update プロンプト エラー 0x8024401c エラーの解決策 Jun 08, 2024 pm 12:18 PM

目次 解決策 1 解決策 21. Windows Update の一時ファイルを削除します。 2. 破損したシステム ファイルを修復します。 3. レジストリ エントリを表示および変更します。 4. ネットワーク カード IPv6 をオフにします。 5. WindowsUpdateTroubleshooter ツールを実行して修復します。 6. ファイアウォールをオフにします。およびその他の関連するウイルス対策ソフトウェア。 7. WidowsUpdate サービスを閉じます。解決策 3 解決策 4 Huawei コンピュータの Windows アップデート中に「0x8024401c」エラーが発生する 症状 問題 原因 解決策 まだ解決されませんか?最近、システムの脆弱性のため、Web サーバーを更新する必要があります。サーバーにログインすると、エラー コード 0x8024401c が表示されます。

オープンソース!ゾーイデプスを超えて! DepthFM: 高速かつ正確な単眼深度推定! オープンソース!ゾーイデプスを超えて! DepthFM: 高速かつ正確な単眼深度推定! Apr 03, 2024 pm 12:04 PM

0.この記事は何をするのですか?私たちは、多用途かつ高速な最先端の生成単眼深度推定モデルである DepthFM を提案します。従来の深度推定タスクに加えて、DepthFM は深度修復などの下流タスクでも最先端の機能を実証します。 DepthFM は効率的で、いくつかの推論ステップ内で深度マップを合成できます。この作品について一緒に読みましょう〜 1. 論文情報タイトル: DepthFM: FastMonocularDepthEstimationwithFlowMatching 著者: MingGui、JohannesS.Fischer、UlrichPrestel、PingchuanMa、Dmytr

Google は大喜び: JAX のパフォーマンスが Pytorch や TensorFlow を上回りました! GPU 推論トレーニングの最速の選択肢となる可能性があります Google は大喜び: JAX のパフォーマンスが Pytorch や TensorFlow を上回りました! GPU 推論トレーニングの最速の選択肢となる可能性があります Apr 01, 2024 pm 07:46 PM

Google が推進する JAX のパフォーマンスは、最近のベンチマーク テストで Pytorch や TensorFlow のパフォーマンスを上回り、7 つの指標で 1 位にランクされました。また、テストは最高の JAX パフォーマンスを備えた TPU では行われませんでした。ただし、開発者の間では、依然として Tensorflow よりも Pytorch の方が人気があります。しかし、将来的には、おそらくより大規模なモデルが JAX プラットフォームに基づいてトレーニングされ、実行されるようになるでしょう。モデル 最近、Keras チームは、ネイティブ PyTorch 実装を使用して 3 つのバックエンド (TensorFlow、JAX、PyTorch) をベンチマークし、TensorFlow を使用して Keras2 をベンチマークしました。まず、主流のセットを選択します

iPhoneのセルラーデータインターネット速度が遅い:修正 iPhoneのセルラーデータインターネット速度が遅い:修正 May 03, 2024 pm 09:01 PM

iPhone のモバイル データ接続に遅延や遅い問題が発生していませんか?通常、携帯電話の携帯インターネットの強度は、地域、携帯ネットワークの種類、ローミングの種類などのいくつかの要因によって異なります。より高速で信頼性の高いセルラー インターネット接続を実現するためにできることがいくつかあります。解決策 1 – iPhone を強制的に再起動する 場合によっては、デバイスを強制的に再起動すると、携帯電話接続を含む多くの機能がリセットされるだけです。ステップ 1 – 音量を上げるキーを 1 回押して放します。次に、音量小キーを押して、もう一度放します。ステップ 2 – プロセスの次の部分は、右側のボタンを押し続けることです。 iPhone の再起動が完了するまで待ちます。セルラーデータを有効にし、ネットワーク速度を確認します。もう一度確認してください 修正 2 – データ モードを変更する 5G はより優れたネットワーク速度を提供しますが、信号が弱い場合はより適切に機能します

ExcelアイコンをPPTスライドに挿入する方法 ExcelアイコンをPPTスライドに挿入する方法 Mar 26, 2024 pm 05:40 PM

1. PPT を開き、Excel アイコンを挿入する必要があるページに移動します。 「挿入」タブをクリックします。 2. [オブジェクト]をクリックします。 3. 次のダイアログボックスが表示されます。 4. [ファイルから作成]をクリックし、[参照]をクリックします。 5. 挿入する Excel テーブルを選択します。 6. [OK] をクリックすると、次のページが表示されます。 7. [アイコンで表示]にチェックを入れます。 8. 「OK」をクリックします。

ExcelデータをHTMLで読み込む方法 ExcelデータをHTMLで読み込む方法 Mar 27, 2024 pm 05:11 PM

Excel データを HTML で読み取る方法: 1. JavaScript ライブラリを使用して Excel データを読み取ります; 2. サーバーサイド プログラミング言語を使用して Excel データを読み取ります。

超知性の生命力が覚醒する!しかし、自己更新 AI の登場により、母親はデータのボトルネックを心配する必要がなくなりました。 超知性の生命力が覚醒する!しかし、自己更新 AI の登場により、母親はデータのボトルネックを心配する必要がなくなりました。 Apr 29, 2024 pm 06:55 PM

世界は狂ったように大きなモデルを構築していますが、インターネット上のデータだけではまったく不十分です。このトレーニング モデルは「ハンガー ゲーム」のようであり、世界中の AI 研究者は、データを貪欲に食べる人たちにどのように餌を与えるかを心配しています。この問題は、マルチモーダル タスクで特に顕著です。何もできなかった当時、中国人民大学学部のスタートアップチームは、独自の新しいモデルを使用して、中国で初めて「モデル生成データフィード自体」を実現しました。さらに、これは理解側と生成側の 2 つの側面からのアプローチであり、両方の側で高品質のマルチモーダルな新しいデータを生成し、モデル自体にデータのフィードバックを提供できます。モデルとは何ですか? Awaker 1.0 は、中関村フォーラムに登場したばかりの大型マルチモーダル モデルです。チームは誰ですか?ソフォンエンジン。人民大学ヒルハウス人工知能大学院の博士課程学生、ガオ・イージャオ氏によって設立されました。

テスラのロボットは工場で働く、マスク氏:手の自由度は今年22に達する! テスラのロボットは工場で働く、マスク氏:手の自由度は今年22に達する! May 06, 2024 pm 04:13 PM

テスラのロボット「オプティマス」の最新映像が公開され、すでに工場内で稼働可能となっている。通常の速度では、バッテリー(テスラの4680バッテリー)を次のように分類します:公式は、20倍の速度でどのように見えるかも公開しました - 小さな「ワークステーション」上で、ピッキング、ピッキング、ピッキング:今回は、それがリリースされたハイライトの1つビデオの内容は、オプティマスが工場内でこの作業を完全に自律的に行​​い、プロセス全体を通じて人間の介入なしに完了するというものです。そして、オプティマスの観点から見ると、自動エラー修正に重点を置いて、曲がったバッテリーを拾い上げたり配置したりすることもできます。オプティマスのハンドについては、NVIDIA の科学者ジム ファン氏が高く評価しました。オプティマスのハンドは、世界の 5 本指ロボットの 1 つです。最も器用。その手は触覚だけではありません

See all articles