|
在修改公司网站项目中涉及到了把excel文件上传到后台并处理,经过学习总结出下面方法,记录一下。
<form action="http://xx.xx.com/tet.php" method="post" enctype="multipart/form-data">
<input type="file" id="file" name="file" style="display:none">
<input type="button" value="选择附件">
<input type="submit" value="提交" />
</form>
通过上面的代码,会弹出对话框,选择要上传的文件excel文件(方法中没有添加判断文件类型)。
tet.php文件如下
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style type="text/css">
#test{height:expression(eval(document.documentElement.clientWidth)); background:#999;}
</style>
</head>
<body>
<?php
//print_r($_FILES);
if(move_uploaded_file($_FILES['file']['tmp_name'],'./uploads/up.xls'))//上传文件,成功返回true
{echo '上传成功';
}
else
{echo '上传失败';}
$db_server="localhost";
$db_user_name="xx";
$db_user_password='xx';
$db_name="xx";//表名
$conn=mysql_connect($db_server,$db_user_name,$db_user_password);
mysql_query("SET NAMES UTF8");
mysql_select_db($db_name, $conn);
require_once 'excel_reader2.php';//引用文件
$data = new Spreadsheet_Excel_Reader();
//设置文本输出编码
$data->setOutputEncoding('UTF-8');
$data->read("./uploads/up.xls");//读取excel
$arr=array();
$arb=array();
$wmark=0;
$name;
$email;
$post;//职位
$written='0';
$exam;//
$permission='0';
$ip='xx';
$date='xx';
for ($i = 2; $i <= $data->sheets[0]['numRows']; $i++) {
//显示每个单元格内容
$arr[$data->sheets[0]['cells'][$i][1]]=$data->sheets[0]['cells'][$i][2];
$arb[$data->sheets[0]['cells'][$i][1]]=$data->sheets[0]['cells'][$i][3];
}
foreach($arr as $k => $v){//遍历数组修改数据库
$existsql = "SELECT email FROM xx WHERE email='$k' LIMIT 1";
$exist = mysql_query($existsql);
$row = mysql_fetch_array($exist, MYSQL_ASSOC);
if (!mysql_num_rows($exist)) //判断数据是否存在
{
if(!empty($k))//不存在,插入
{
$dsql = "INSERT INTO kids_user (name,email,post,written,exam,ip,date) VALUES ('$v','$k','$post','$written','$exam','$ip',NOW())";
$email = mysql_query($dsql);
//echo $dsql;
}
foreach($arb as $kl => $vl){
$existsql = "SELECT email FROM xx WHERE email='$kl' LIMIT 1";
$exist = mysql_query($existsql);
if($exist){
$emailadd = "UPDATE xx SET post='$vl' WHERE email='$kl'";
$email = mysql_query($emailadd);
}
unlink('./uploads/up.xls');//删除文件
}
echo "\n";
echo '添加成功';
?>
<meta http-equiv="Refresh" content="2; url=http://xxx.xxx.com" /><!--2秒后跳转某页面-->
</body>
</html>
文件中的excel_reader2.php文件在附件中(改文件必须存在)。 |
|
|