将excel中多个sheet拆分成多个文件 (比如简历都在一个excel里)

(用到phpexcel类)

1、遍历文件夹下的所有xls文件路径  (遍历目录那块可以写成传入目录参数的形式)

2、循环文件目录并将整个excel中的每个sheet转成html

	/*
	 * excel转html
	 */

	public function excelToHtml()
	{
		vendor('PHPExcel.PHPExcel');
		//这里引入PHPExcel类
		//$filePath = '/data/web/xxx/Public/Uploads/salary/t.xls';
		//$filePath = '/data/web/xxx/Public/Uploads/salary/excel (12)(3).xls';


		$arr_files = $this->listFiles("/data/web/xxx/Public/Uploads/salary");
		foreach($arr_files as $key=>$filePath){
			$fileType = \PHPExcel_IOFactory::identify($filePath); //文件名自动判断文件类型
			$objReader = \PHPExcel_IOFactory::createReader($fileType);
			$objPHPExcel = $objReader->load($filePath);

			$sheetCount = $objPHPExcel->getSheetCount();
			$re_sheetCount = $sheetCount -1 ; //sheet索引由0开始,总索引为总数-1
			for($i=1;$i<=$re_sheetCount;$i++){
				$savePath = "/data/web/xxx/Public/Uploads/ex_tohtml/".ordersn().".html"; //这里记得将文件名包含进去
				$objWriter = new \PHPExcel_Writer_HTML($objPHPExcel);
				$objWriter->setSheetIndex($i); //可以将括号中的0换成需要操作的sheet索引
				$objWriter->save($savePath); //保存为html文件
			}
		}


		echo 'over';
	}
	
	
	/*
	 * 遍历目录
	 */
	public function listFiles()
	{

		//strtolower(pathinfo($file_name, PATHINFO_EXTENSION));


		$path = "/data/web/xxx/Public/Uploads/salary";
		$files = scandir($path);
		$fileItem = [];
		foreach($files as $v) {
			$newPath = $path .DIRECTORY_SEPARATOR . $v;
			if(is_dir($newPath) && $v != '.' && $v != '..') { //判断是否为系统隐藏的文件.和..  如果是则跳过否则就继续往下走,防止无限循环再这里。
				$fileItem = array_merge($fileItem, getDir($newPath));
			}else if(is_file($newPath)){
				$fileItem[] = $newPath;
			}
		}

		return $fileItem;
	}

猜你喜欢

转载自blog.csdn.net/A9925/article/details/86554821