博客列表 >phpexecl插件前要用的依次读取文件内容

phpexecl插件前要用的依次读取文件内容

夏日的烈风的博客
夏日的烈风的博客原创
2018年06月13日 10:16:36755浏览

/**
*  数据导入
* @param string $file excel文件
* @param string $sheet
* @return string   返回解析数据
* @throws PHPExcel_Exception
* @throws PHPExcel_Reader_Exception
*/
function importExecl($file = '', $sheet = 0)
{
   $file = iconv("utf-8", "gb2312", $file);   //转码
   if (empty($file) OR !file_exists($file)) {
       die('file not exists!');
   }
   $objRead = new PHPExcel_Reader_Excel2007();   //建立reader对象
   if (!$objRead->canRead($file)) {
       $objRead = new PHPExcel_Reader_Excel5();
       if (!$objRead->canRead($file)) {
           die('No Excel!');
       }
   }
   $cellName = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ');
   $obj = $objRead->load($file);  //建立excel对象
   $currSheet = $obj->getSheet($sheet);   //获取指定的sheet表
   $columnH = $currSheet->getHighestColumn();   //取得最大的列号
   if (!in_array($columnH, $cellName)) {
       $arr = array(
           'code' => 0,
           'msg' => '单元格列数过多,请用标准模板!'
       );
       echo json_encode($arr);
       exit;
   }
   $columnCnt = array_search($columnH, $cellName);
   $rowCnt = $currSheet->getHighestRow();   //获取总行数
   $data = array();
   for ($_row = 1; $_row <= $rowCnt; $_row++) {  //读取内容
       for ($_column = 0; $_column <= $columnCnt; $_column++) {
           $cellId = $cellName[$_column] . $_row;
           $cellValue = $currSheet->getCell($cellId)->getValue();
           if ($cellValue instanceof PHPExcel_RichText) {   //富文本转换字符串
               $cellValue = $cellValue->__toString();
           }
           $data[$_row][$cellName[$_column]] = $cellValue;
       }
   }
   return $data;
}

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议