用ai修复了一下
<?php
if (!defined('puyuetian')) {
exit('403');
}
if ('yes' == $_G['GET']['SUBMIT']) {
// 获取文件地址
$filedata = $_G['TABLE']['UPLOAD']->getData(Cnum($_POST['excelfileid']));
$excelpath = "{$_G['SYSTEM']['PATH']}/uploadfiles/{$filedata['target']}s/{$filedata['uid']}/" .
substr($filedata['datetime'], 0, 8) . '/' .
substr($filedata['datetime'], 8) . "_{$filedata['rand']}.{$filedata['suffix']}";
if (!file_exists($excelpath)) {
$_G['HTMLCODE']['TIP'] = '待导入的文件不存在<br>' . $excelpath;
} else {
// 设置PHPExcel根目录
define('PHPEXCEL_ROOT', "{$_G['SYSTEM']['PATH']}/app/yodati/otherframes/");
// 1. 首先加载核心文件
require_once PHPEXCEL_ROOT . 'PHPExcel.php';
// 2. 加载Autoloader(如果存在)
if (file_exists(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php')) {
require_once PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php';
PHPExcel_Autoloader::Register();
}
// 3. 确保加载所有必需的类文件
require_once PHPEXCEL_ROOT . 'PHPExcel/IOFactory.php';
require_once PHPEXCEL_ROOT . 'PHPExcel/Reader/IReader.php';
require_once PHPEXCEL_ROOT . 'PHPExcel/Reader/Abstract.php';
require_once PHPEXCEL_ROOT . 'PHPExcel/Reader/Excel2007.php';
try {
// 创建阅读器实例
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
// 设置读取选项(可选)
$objReader->setReadDataOnly(true);
// 加载Excel文件
$objPHPExcel = $objReader->load($excelpath);
$sheet = $objPHPExcel->getSheet(0);
// 获取表数据
$highestRow = $sheet->getHighestRow();
$highestColumn = $sheet->getHighestColumn();
$ea = array();
// 读取Excel数据
for ($j = 1; $j <= $highestRow; $j++) {
for ($k = 'A'; $k <= $highestColumn; $k++) {
$cell = $sheet->getCell($k.$j);
$str = $cell->getValue();
// 处理公式计算结果
if ($cell->getDataType() == PHPExcel_Cell_DataType::TYPE_FORMULA) {
$str = $cell->getCalculatedValue();
}
$str = mb_convert_encoding($str, 'UTF-8', 'auto');
$ea[$k][$j] = $str;
}
}
// 存入数据库
$importCount = 0;
$columns = range('A', $highestColumn);
for ($i = 2; $i <= $highestRow; $i++) {
$array = array();
$hasData = false;
foreach ($columns as $col) {
$colName = $ea[$col][1]; // 第一行是列名
$value = $ea[$col][$i] ?? '';
if (!empty($value)) {
$hasData = true;
}
$array[$colName] = $value;
}
if ($hasData) {
$_G['TABLE']['APP_YODATI_TIKU']->newData($array);
$importCount++;
}
}
$_G['HTMLCODE']['TIP'] = "成功导入 {$importCount} 条数据";
} catch (PHPExcel_Exception $e) {
$_G['HTMLCODE']['TIP'] = 'Excel处理错误: ' . $e->getMessage();
} catch (Exception $e) {
$_G['HTMLCODE']['TIP'] = '系统错误: ' . $e->getMessage();
}
$_G['HTMLCODE']['MAIN'] = template('tip', true);
}
} else {
$_G['HTMLCODE']['MAIN'] = template('yodati:admin-importexcel', true);
}