phpexcel を使用して Excel データをインポートする方法の例_PHP チュートリアル
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;
}

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









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

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

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

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

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

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

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

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