<?php
if($_post['file_stu'] == "true")
{
$filename = $_files['inputexcel']['name'];
$tmp_name = $_files['inputexcel']['tmp_name'];
$msg = uploadfile($filename,$tmp_name);
echo $msg;
}
//导入excel文件
function uploadfile($file,$filetempname)
{
//自己设置的上传文件存放路径
$filepath = 'upfile/';
$str ="";
//下面存放excel路径
require_once 'phpexcel/phpexcel.php';
require_once 'phpexcel/iofactory.php';
require_once 'phpexcel/reader/excel5.php';
//注意设置时区
$time=date("y-m-d-h-i-s");//去当前上传的时间
//获取上传文件的扩展名
$extend=strrchr ($file,'.');
//上传后的文件名
$name=$time.$extend;
$uploadfile=$filepath.$name;//上传后的文件名地址
//move_uploaded_file() 函数将上传的文件移动到新位置。若成功,则返回 true,否则返回 false。
$result=move_uploaded_file($filetempname,$uploadfile);//假如上传到当前目录下
echo $result;
if($result) //如果上传文件成功,就执行导入excel操作
{
include "../data/common.inc.php";
$objreader = phpexcel_iofactory::createreader('excel5');//use excel2007 for 2007 format
$objphpexcel = $objreader->load($uploadfile);
$sheet = $objphpexcel->getsheet(0);
$highestrow = $sheet->gethighestrow(); //取得总行数
$highestcolumn = $sheet->gethighestcolumn(); //取得总列数
// 循环读取excel文件,读取一条,插入一条
for($j=1;$j<=$highestrow;$j++) //从第一行开始读取数据
{
for($k='a';$k<=$highestcolumn;$k++) //从a列读取数据
{
//这种方法简单,但有不妥,以'\\'合并为数组,再分割\\为字段值插入到数据库
//实测在excel中,如果某单元格的值包含了\\导入的数据会为空
$str .=$objphpexcel->getactivesheet()->getcell("$k$j")->getvalue().'\\';//读取单元格
}
echo $str;
die();
//explode:函数把字符串分割为数组。
$strs = explode("\\",$str);
print_r($strs);
exit;
$sql = "insert into dede_arctype(
`reid` ,
`topid` ,
`sortrank` ,
`typename` ,
`typedir` ,
`isdefault` ,
`defaultname` ,
`issend`
)
values (
'".$strs[0]."','".$strs[1]."','". $strs[2]."','". $strs[3]."','". $strs[4]."','". $strs[5]."','". $strs[6]."','". $strs[7]."')";
}
unlink($uploadfile); //删除上传的excel文件
$msg = "导入成功!";
}
}
/*class exceltoarrary {
public function __construct() {
//导入phpexcel核心类 注意 :你的路径跟我不一样就不能直接复制
include_once('classes/phpexcel.php');
}
//*
//* 读取excel $filename 路径文件名 $encode 返回数据的编码 默认为utf8
//*以下基本都不要修改
public function read($filename,$encode='utf-8')
{
$objreader = phpexcel_iofactory::createreader('excel5');
$objreader->setreaddataonly(true);
$objphpexcel = $objreader->load($filename);
$objworksheet = $objphpexcel->getactivesheet();
$highestrow = $objworksheet->gethighestrow();
$highestcolumn = $objworksheet->gethighestcolumn();
$highestcolumnindex = phpexcel_cell::columnindexfromstring($highestcolumn);
exceldata==array();
for ($row = 1; $row <= $highestrow; $row++) {
for ($col = 0; $col < $highestcolumnindex; $col++) {
$exceldata[$row][] =(string)$objworksheet->getcellbycolumnandrow($col, $row)->getvalue();
}
}
return $exceldata;
}
}
if (! empty ( $_files ['file_stu'] ['name'] ))
{
$tmp_file = $_files ['file_stu'] ['tmp_name'];
$file_types = explode ( ".", $_files ['file_stu'] ['name'] );
$file_type = $file_types [count ( $file_types ) - 1];
//判别是不是.xls文件,判别是不是excel文件
/* if (strtolower ( $file_type ) != "xls")
{
$this->error ( '不是excel文件,重新上传' );
}*/
//设置上传路径
/* $savepath ='/upfile/';
//以时间来命名上传的文件
$str = date ( 'ymdhis' );
file_name== $str . "." . $file_type;
//是否上传成功
if (! copy ( $tmp_file, $savepath . $file_name ))
{
$this->error ( '上传失败' );
}
//*对上传的excel数据进行处理生成编程数据,这个函数会在下面第三步的exceltoarray类中
//注意:这里调用执行了第三步类里面的read函数,把excel转化为数组并返回给$res,再进行数据库写入
$res =service('exceltoarray')->read($savepath . $file_name );
//重要代码 解决thinkphp m、d方法不能调用的问题
//如果在thinkphp中遇到m 、d方法失效时就加入下面一句代码
spl_autoload_register ( array ('think', 'autoload' ) );
//对生成的数组进行数据库的写入
foreach ( $res as $k => $v )
{
if ($k != 0)
{
$data ['uid'] = $v [0];
$data ['password'] = sha1 ( '111111' );
$data ['email'] = $v [1];
$data ['uname'] = $v [3];
$data ['institute'] = $v [4];
$result = m ( 'user' )->add ( $data );
if (! $result)
{
$this->error ( '导入数据库失败' );
}
}
}
}
*/
?>
684271ed9684bde649abda8831d4d355导入excel表:39528cedfa926ea0c01e69ef5b2ea9b0
da7ae453d699ef3bb6cace5fb3830c62
fb3a07a03ffd51ffce4e9d6d64676094
59c2293cc39f29332b862422be5a454a
466c85d563b549f1dc4c03716c564db0
f5a47148e367a6035fd7a2faa965022e
