excel作为office家族的一员,继承了微软垄断的特点:不开源。可是领导要求能通过网页读取excel内容,好纠结的。
无奈,刚学php的人伤不起啊。好在已经有高手写出了php读excel内容的代码,微微修改即可达到目的,接下来就是截取每个单元格的值,将其写入数据库就ok了。
自己写的入库代码:
$cn=mysql_connect("localhost","root","root");
if(!$cn)
{
die('无法连接数据库'.mysql_error());
}
mysql_select_db("yp-salary",$cn);
//数据库连接
mysql_query("set names utf8");
require_once 'Excel/reader.php';
$data = new Spreadsheet_Excel_Reader();
$data->setOutputEncoding('utf-8');//此处设置编码,一般都是gbk模式
$data->read('upload/salary.xls');//文件路径
error_reporting(E_ALL ^ E_NOTICE);
//这里我就只循环输出excel文件的内容了,要入库,只要把输出的地方,写一段mysql语句即可~
for ($i = 2; $i <= $data->sheets[0]['numRows']; $i++) {
//echo "2011"." "."11";
$temp[0]=$_POST[year];$temp[1]=$_POST[month];
$k=2;
for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {
//echo "\"".$data->sheets[0]['cells'][$i][$j]."\",";
$temp[$k]=$data->sheets[0]['cells'][$i][$j];//echo "$temp[$k]" ;echo " / ";
$k++;
}
$sql="INSERT INTO salary (year,mouth,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) VALUES('$temp[0]','$temp[1]','$temp[2]','$temp[3]','$temp[4]','$temp[5]','$temp[6]','$temp[7]','$temp[8]','$temp[9]','$temp[10]','$temp[11]','$temp[12]','$temp[13]','$temp[14]','$temp[15]','$temp[16]','$temp[17]','$temp[18]','$temp[19]','$temp[20]','$temp[21]','$temp[22]','$temp[23]','$temp[24]','$temp[25]','$temp[26]','$temp[27]','$temp[28]','$temp[29]')";
if (!mysql_query($sql,$cn))
{
die('Error: ' . mysql_error());
}
}
echo "上传完毕,数据库已写入";
mysql_close($cn);
?>