作者:冭獭1314 | 来源:互联网 | 2018-03-21 05:00
PHPExcel类是php一个excel表格处理插件了,下面我来给大家介绍利用PHPExcel类来导入与导出excel表格的应用方法,有需要了解的朋友不防参考参考,PHPExcel自己百度下载这...
PHPExcel类是php一个excel表格处理插件了,下面我来给大家介绍利用PHPExcel类来导入与导出excel表格的应用方法,有需要了解的朋友不防参考参考,PHPExcel自己百度下载这里不介绍了.
导出Excel用法,代码如下:
basePath.'/lib/PHPExcel' . PATH_SEPARATOR .
get_include_path());
//注:在yii中,也可以直接Yii::import("application.lib.PHPExcel.*");
//引入PHPExcel相关文件
require_once "PHPExcel.php";
require_once 'PHPExcel/IOFactory.php';
require_once 'PHPExcel/Writer/Excel5.php';
//把要导出的内容放到表格,新建
$resultPHPExcel = new PHPExcel();
//设置参数 设值
$resultPHPExcel->getActiveSheet()->setCellValue('A1', '季度');
$resultPHPExcel->getActiveSheet()->setCellValue('B1', '名称');
$resultPHPExcel->getActiveSheet()->setCellValue('C1', '数量');
$i = 2;
foreach($data as $item){
$resultPHPExcel->getActiveSheet()->setCellValue('A' . $i, $item['quarter']);
$resultPHPExcel->getActiveSheet()->setCellValue('B' . $i, $item['name']);
$resultPHPExcel->getActiveSheet()->setCellValue('C' . $i, $item['number']);
$i ++;
}
?>
设置导出参数,代码如下:
save( "php://output" );
输出有错,默认$xlsWriter->save( "php://output" );可能因为缓存不够大,而显示不完整,所以做个中转,代码如下:
$finalFileName = (Yii::app()->basePath.'/runtime/'.time().'.xls';
$xlsWriter->save($finalFileName);
echo file_get_contents($finalFileName);
?>
//file_get_contents() 函数把整个文件读入一个字符串中。和 file() 一样,不同的是 file_get_contents() 把文件读入一个字符串。
导入Excel用法,代码如下:
load($uploadfile);
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow(); //取得总行数
$highestColumn = $sheet->getHighestColumn(); //取得总列数
/* 第一种方法
//循环读取excel文件,读取一条,插入一条
for($j=1;$j<=$highestRow;$j++) //从第一行开始读取数据
{
for($k=&#39;A&#39;;$k<=$highestColumn;$k++) //从A列读取数据
{
//
这种方法简单,但有不妥,以&#39;&#39;合并为数组,再分割为字段值插入到数据库
实测在excel中,如果某单元格的值包含了导入的数据会为空
//
$str .=$objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue().&#39;&#39;;//读取单元格
}
//echo $str; die();
//explode:函数把字符串分割为数组。
$strs = explode("",$str);
$sql = "INSERT INTO te(`1`, `2`, `3`, `4`, `5`) VALUES (
&#39;{$strs[0]}&#39;,
&#39;{$strs[1]}&#39;,
&#39;{$strs[2]}&#39;,
&#39;{$strs[3]}&#39;,
&#39;{$strs[4]}&#39;)";
//die($sql);
if(!mysql_query($sql))
{
return false;
echo &#39;sql语句有误&#39;;
}
$str = "";
}
unlink($uploadfile); //删除上传的excel文件
$msg = "导入成功!";
*/
/* 第二种方法*/
$objWorksheet = $objPHPExcel->getActiveSheet();
$highestRow = $objWorksheet->getHighestRow();
echo &#39;highestRow=&#39;.$highestRow;
echo "
";
$highestColumn = $objWorksheet->getHighestColumn();
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);//总列数
echo &#39;highestColumnIndex=&#39;.$highestColumnIndex;
echo "
";
$headtitle=array();
for ($row = 1;$row <= $highestRow;$row++)
{
$strs=array();
//注意highestColumnIndex的列数索引从0开始
for ($col = 0;$col <$highestColumnIndex;$col++)
{
$strs[$col] =$objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
}
$sql = "INSERT INTO te(`1`, `2`, `3`, `4`, `5`) VALUES (
&#39;{$strs[0]}&#39;,
&#39;{$strs[1]}&#39;,
&#39;{$strs[2]}&#39;,
&#39;{$strs[3]}&#39;,
&#39;{$strs[4]}&#39;)";
//die($sql);
if(!mysql_query($sql))
{
return false;
echo &#39;sql语句有误&#39;;
}
}
}
else
{
$msg = "导入失败!";
}
return $msg;
}
?>
HTML网页代码,代码如下:
文章链接:
随便收藏,请保留本文地址!