PHPExcel是php的一个插件,它可以实现读取excel文件也就是xls文件了,下面我们就来看一个PHPExcel操作excel(xls)文件例子,希望能帮助到各位。
读取中文的xls、csv文件会有问题,网上找了下资料,发现PHPExcel类库好用,官网地址:/
1、读取xls文件内容<?php
//向xls文件写入内容
error_reporting(E_ALL);
ini_set('display_errors',TRUE);
include'Classes/PHPExcel.php';
include'Classes/PHPExcel/IOFactory.php';
//$data:xls文件内容正文
//$title:xls文件内容标题
//$filename:导出的文件名
//$data和$title必须为utf-8码,否则会写入FALSE值
functionwrite_xls($data=array(),$title=array(),$filename='report'){
$objPHPExcel=newPHPExcel();
//设置文档属性,设置中文会产生乱码,待完善...
//$objPHPExcel->getProperties()->setCreator("云舒")
//->setLastModifiedBy("云舒")
//->setTitle("产品URL导出")
//->setSubject("产品URL导出")
//->setDescription("产品URL导出")
//->setKeywords("产品URL导出");
$objPHPExcel->setActiveSheetIndex(0);
$cols='ABCDEFGHIJKLMNOPQRSTUVWXYZ';
//设置标题
for($i=0,$length=count($title);$i
//echo$cols{$i}.'1';
$objPHPExcel->getActiveSheet()->setCellValue($cols{$i}.'1',$title[$i]);
}
//设置标题样式
$titleCount=count($title);
$r=$cols{0}.'1';
$c=$cols{$titleCount}.'1';
$objPHPExcel->getActiveSheet()->getStyle("$r:$c")->applyFromArray(
array(
'font'=>array(
'bold'=>true
),
'alignment'=>array(
'horizontal'=>PHPExcel_Style_Alignment::HORIZONTAL_RIGHT,
),
'borders'=>array(
'top'=>array(
'style'=>PHPExcel_Style_Border::BORDER_THIN
)
),
'fill'=>array(
'type'=>PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR,
'rotation'=>90,
'startcolor'=>array(
'argb'=>'FFA0A0A0'
),
'endcolor'=>array(
'argb'=>'FFFFFFFF'
)
)
)
);
$i=0;
foreach($dataas$d){//这里用foreach,支持关联数组和数字索引数组
$j=0;
foreach($das$v){//这里用foreach,支持关联数组和数字索引数组
$objPHPExcel->getActiveSheet()->setCellValue($cols{$j}.($i+2),$v);
$j++;
}
$i++;
}
//生成excel格式的xls文件
header('Content-Type:application/vnd.ms-excel');
header('Content-Disposition:attachment;filename="'.$filename.'.xls"');
header('Cache-Control:max-age=0');
$objWriter=PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel5');
$objWriter->save('php://output');
}
$array=array(
array(1111,'名称','品牌','商品名',''),
array(1111,'名称','品牌','商品名',''),
array(1111,'名称','品牌','商品名',''),
array(1111,'名称','品牌','商品名',''),
array(1111,'名称','品牌','商品名',''),
);
write_xls($array,array('商品id','供应商名称','品牌','商品名','URL'),'report');
?>
//2、向xls文件写内容<?php
//获取数据库数据(mysqli预处理学习)
$config=array(
'DB_TYPE'=>'mysql',
'DB_HOST'=>'localhost',
'DB_NAME'=>'test',
'DB_USER'=>'root',
'DB_PWD'=>'root',
'DB_PORT'=>'3306',
);
functiongetProductIdByName($name){
global$config;
$id=false;
$mysqli=newmysqli($config['DB_HOST'],$config['DB_USER'],$config['DB_PWD'],$config['DB_NAME']);
if(mysqli_connect_error()){//兼容connect_error
die("连接失败,错误码:".mysqli_connect_errno()."错误信息:".mysqli_connect_error());
}
//设置连接数据库的编码,不要忘了设置
$mysqli->set_charset("gbk");
//中文字符的编码要与数据库一致,若没设置,结果为null
$name=iconv("utf-8","gbk//IGNORE",$name);
if($mysqli_stmt=$mysqli->prepare("selectidfrom137_productwherenamelike?")){
$mysqli_stmt->bind_param("s",$name);
$mysqli_stmt->execute();
$mysqli_stmt->bind_result($id);
$mysqli_stmt->fetch();
$mysqli_stmt->close();
}
$mysqli->close();
return$id;//得到的是gbk码(同数据库编码)
}
$id=getProductIdByName('%伊奈卫浴伊奈分体座便器%');
var_dump($id);
?>
OK...
转载随意,但请附上文章地址:-)