说明:由于项目需要,需要“获取Excel表格的内容”,用于插入mysql数据表。
分为以下两种情况【我们项目是第二种情况】:
一、上传的Excel表格在项目文件夹
A、得到 Excel表格的路径;
B、通过 PHPExcel类 开始读取 Excel表格内容
二、上传的Excel表格在阿里云
A、先将 阿里云的Excel表格 下载到 项目文件夹
//先将excel下载到项目(判断是否有文件,没有文件的话,下载文件)
$currentXlsx = date("YmdHis").".xlsx";
$fileName = $_SERVER["DOCUMENT_ROOT"]."/".$currentXlsx;
if (!file_exists($fileName)) {
file_put_contents($currentXlsx,file_get_contents($filePath));//开始下载文件
}
B、通过 PHPExcel类 开始读取 Excel表格内容
B-1、excel表格如下图
B-2、开始读取excel表格内容
$CI = & get_instance();
$CI ->load ->library('PHPExcel');
$objPHPExcel = new \PHPExcel();
$objPHPExcel = \PHPExcel_IOFactory::load($fileName);
$sheetCount = $objPHPExcel->getSheetCount();//获取Sheet总数
$sheetSelected = 0; $objPHPExcel->setActiveSheetIndex($sheetSelected);
$rowCount = $objPHPExcel->getActiveSheet()->getHighestRow();//获取表格行数 $totalNum = $rowCount - 1;//计算总发送人数
$columnCount = $objPHPExcel->getActiveSheet()->getHighestColumn();//获取表格列数
/////////////A、循环excel表格数据 并将 数据插入“私信详情表 T_WK_PrivateMessageDetail” $dataArr = array();
for ($row = 1; $row <= $rowCount; $row++){//行数循环,行数是以1行开始
for ($column = 'A'; $column <= $columnCount; $column++) {//列数循环,列数是以A列开始
//从第2行的数据开始
if($row > 1){
if($column == "A"){
$column_2 = "FReceiver";
$dataArr[$row-1][$column_2] = $objPHPExcel->getActiveSheet()->getCell($column.$row)->getValue();
}else if($column == "B"){
$column_2 = "FContact";
$dataArr[$row-1][$column_2] = $objPHPExcel->getActiveSheet()->getCell($column.$row)->getValue();
}else{
$column_2 = "FContent";
$row_1 = $objPHPExcel->getActiveSheet()->getCell($column."1")->getValue();
$value[$row_1] = $objPHPExcel->getActiveSheet()->getCell($column.$row)->getValue();
$dataArr[$row-1][$column_2] = json_encode($value);
}
}
}
}
B-3、打印数据如下图
B-4、开始读取excel表格内容
网友评论