这篇文章用的是ABCD列,对应着数据库的字段名,进行excel表格的导入,看看就懂了!
//导入客户经理
public function do_addman()
{
//导入客户经理Excel表格
if (I('types') == 'upload') {
if (!empty($_FILES)) {
$upload = new \Think\Upload(); // 实例化上传类
$upload->maxSize = 3145728; // 设置附件上传大小
$upload->exts = array('xls', 'xlsx'); // 设置附件上传类型
$upload->rootPath = './';
$upload->savePath = 'Public/Uploads/bankmanager/'; // 设置附件上传目录
$info = $upload->upload();
if (!$info) {
// 上传错误提示错误信息
$this->error($upload->getError());
} else {
// 上传成功
import('Vendor.phpexcel.PHPExcel');
$file_name = $info['manager']['savepath'] . $info['manager']['savename'];
$PHPExcel = new \PHPExcel();
$exts = $info['manager']['ext'];
if ($exts == 'xls') {
// 如果excel文件后缀名为.xls,导入这个类
import("Vendor.phpexcel.PHPExcel.Reader.Excel5");
$PHPReader = new \PHPExcel_Reader_Excel5();
} else if ($exts == 'xlsx') {
import("Vendor.phpexcel.PHPExcel.Reader.Excel2007");
$PHPReader = new \PHPExcel_Reader_Excel2007();
}
$PHPExcel = $PHPReader->load($file_name); // 载入文件
$currentSheet = $PHPExcel->getSheet(0); // 获取表中的第一个工作表,如果要获取第二个,把0改为1,依次类推
$allColumn = $currentSheet->getHighestColumn(); // 获取总列数
$allRow = $currentSheet->getHighestRow(); // 获取总行数
for ($currentRow = 0; $currentRow <= $allRow; $currentRow++) {
// 循环获取表中的数据,$currentRow表示当前行,从哪行开始读取数据,索引值从0开始
for ($currentColumn = 'A'; $currentColumn <= $allColumn; $currentColumn++) {
// 从哪列开始,A表示第一列
$address = $currentColumn . $currentRow; // 数据坐标
$ExlData[$currentRow][$currentColumn] = $currentSheet->getCell($address)->getValue(); // 读取到的数据,保存到数组$arr中
}
}
//调用公用方法的读数组并写入数据库操作
for ($i = 2, $j = 0; $i < sizeof($ExlData); $i++, $j++) {
$dataList[] = array(
'cat_id' => I('id'),
'name' => $ExlData[$i]['A'],
'mobile' => $ExlData[$i]['B'],
'id_number' => $ExlData[$i]['C'],
'bank_card' => $ExlData[$i]['D'],
'add_time' => time(),
);
}
$managers = M('managers'); // 生成数据库对象
$result = $managers->addAll($dataList); // 批量写入数据库
if ($result) {
// 验证
$this->success("导入成功", U('Bank/bankindex'));die; // 跳转学生管理页面
} else {
$this->error("导入失败");die; // 提示错误
}
}
} else {
$this->error('请上传excel文件');
}
}
}