これはファイルを読み取るためのコードです:
require_once dirname(__FILE__) . "/PHPExcel/Classes/PHPExcel.php"; $PHPReader = new PHPExcel_Reader_Excel2007(); if (!$PHPReader->canRead($filePath)) { $PHPReader = new PHPExcel_Reader_Excel5(); if (!$PHPReader->canRead($filePath)) { echo "no file"; die; } } $PHPExcel = $PHPReader->load($filePath); $sheetCount = $PHPExcel->getSheetCount(); $sheetNames = $PHPExcel->getSheetNames(); for ($SheetID = 0; $SheetID < $sheetCount; $SheetID++) { $name = $sheetNames[$SheetID]; $currentSheet = $PHPExcel->getSheetByName($name); $allColumn = $currentSheet->getHighestColumn(); $allRow = $currentSheet->getHighestRow(); $drive = new DriveCommand(); $data = array(); for ($currentRow = 1; $currentRow <= $allRow; $currentRow++) { for ($currentColumn = 'A'; $currentColumn <= $allColumn; $currentColumn++) { $val = $currentSheet->getCellByColumnAndRow(ord($currentColumn) - 65, $currentRow)->getValue(); //$objExcel[$name][$currentRow - 1][ord($currentColumn) - 65] = $val; $data[$currentRow][] = $val; } } if ($name == "产品信息") $name = "product"; else if ($name == "行业") $name = "industry"; else if ($name == "集团信息"){ continue; $name = "bloc"; var_dump($data); die; } else if ($name == "客户信息") { var_dump($data); die; $name = "customer"; } else if ($name == "业务员信息") $name = "employeer"; else continue; $drive->actionUpload($name, $data); }
文字化けは見られません
スクリーンショットはvar_dumpの結果です
Excelファイルのデータは正常ですが、読み込むと一部middle 「 (12) { ["_name":protected]=> string(6) "宋体" ["_size":protected]=> int(12) ["_bold":protected]=> のような出力bool (false) ["_italic":protected]=> bool(false) ["_superScript":protected]=> bool(false) ["_subScript":protected]=> : protected]=> string(4) "none" ["_strikethrough":protected]=> bool(false) ["_color":protected]=> object(PHPExcel_Style_Color)#3006 (4) { " :protected]=> string(8) "FF000000" ["_parentPropertyName":protected]=> NULL ["_isSupervisor":protected]=> bool(false) ["_parent":protected]=> NULL } "そのようなデータ。通常のデータ出力は [2]=> array(13) { [0]=> string(6) "Supermarket" [2]=> 12) 「白家スーパーマーケット」 [3]=> 文字列(6) 「広東」 [4]=> 文字列(6) 「広州」 [5]=> 文字列(21) 「広州チャイナプラザ店」 ]=> string(51) "広州越秀区中山三路228号チャイナプラザ3階" [7]=> NULL [9]=> 10]=> NULL [11]=> 文字列(6) [3]=> 文字列(6) ) "B01002" [1]=> string(6) "スーパーマーケット" [2]=> string(12) "Baijia Supermarket" この形式。
私も文字化けに遭遇することがありますが、それはおそらく Microsoft Excel の問題です。
文字化けはありません
スクリーンショットは var_dump の結果です
私も時々文字化けに遭遇しますが、それはおそらく Microsoft Excel の問題です。
問題は解決されました。単一のセルの内容を読み取る場合、読み取り結果がオブジェクト型である場合と文字列型である場合があるため、判定を追加して型を変更するだけです。