PHPExcel Excel文件导入

工作需要,结合百度上的材料编写了一份PHPExcel 的导入例子:

<?php
//引入PHPExcel
require '../PHPExcel_1.8.0_doc/Classes/PHPExcel/IOFactory.php';

$act = $_POST["act"] == "" ? "view" : $_POST["act"];
//文件上传
if($act == "upload"){
	
	if ($_FILES["file"]["error"] > 0)
	{
		//文件上传失败
		echo "Error: " . $_FILES["file"]["error"] . "<br />";
		return;
	}
	
	echo "<=================================上传的文件属性 start===================================><br/>";
	echo "Upload: " . $_FILES["file"]["name"] . "<br />";
	echo "Type: " . $_FILES["file"]["type"] . "<br />";
	echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
	echo "Stored in: " . $_FILES["file"]["tmp_name"] . "<br />";
	echo "<=================================上传的文件属性 end===================================><br/>";
	
	$file = $_FILES["file"]["tmp_name"];
	if (!file_exists($file)) {
		exit("文件已不存在!" . EOL);
	}
	
	echo "<=================================解析文件 end===================================><br/>";
	echo date('H:i:s') , " Load from " . $file . " file" , EOL . "<br />";
	$callStartTime = microtime(true);

	$objPHPExcel = PHPExcel_IOFactory::load($file);
	
	$callEndTime = microtime(true);
	$callTime = $callEndTime - $callStartTime;
	
	echo 'Call time to read Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL . "<br />";
	
	echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL . "<br />";
	
	$sheetCount = $objPHPExcel->getSheetCount();
	
	echo 'Total: sheet size ' . $sheetCount . ' ', EOL . "<br />";
	
	for($i = 0; $i < $sheetCount; $i++){
		$sheet = $objPHPExcel->getSheet($i);
		$highestRow = $sheet->getHighestRow(); // 取得总行数
		$highestColumm = $sheet->getHighestColumn(); // 取得总列数
		$highestColumm = PHPExcel_Cell::columnIndexFromString($highestColumm);
		//取得文件中标头
		$titles = array();
		for($j = 0; $j <= $highestColumm; $j++){
			$pair_name = $sheet->getCellByColumnAndRow($j, 1)->getValue();
			$titles[$j] = $pair_name;
		}
		//结合标头内容及每一行单独创建一个数组
		for ($i = 2; $i <= $highestRow; $i++) {
			$arr = array();
			for($j = 0; $j <= $highestColumm; $j++){
				$pair_name = $sheet->getCellByColumnAndRow($j, $i)->getValue();//获取制定行号列号的单元格内容
				$pair_name = iconv('UTF-8', 'GBK', $pair_name);//防止中文乱码
				$arr[$titles[$j]] = $pair_name;
			}
			print_r(arr);
			echo '<br/>';
		}
		
	}
}
else if($act == "view"){
	//文件上传页面
?>
<form action="analysis_insert.php" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="hidden" name="act" value="upload" /> 
<input type="file" name="file" id="file" /> 
<br />
<input type="submit" name="submit" value="Submit" />
</form>
<?php 
}
?>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值