请教PHP导入Excel到MySQL的问题
谢谢解答。
[解决办法]
我这里是正常的,我贴下我的代码你参考下(我的是web端自己上传excel文件):
<?php
require_once 'Excel/reader.php';
$data = new Spreadsheet_Excel_Reader();
if($_FILES){
$check = substr($_FILES["file"]["name"],strrpos($_FILES["file"]["name"],".")+1);
if ( $check == "xls"
[解决办法]
$check == "xlsx")
{
move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . $_FILES["file"]["name"]);
}
else
{
exit('no');
}
$data->setOutputEncoding('UTF-8');
$data->read("upload/" . $_FILES["file"]["name"]);
error_reporting(E_ALL ^ E_NOTICE);
$db_host = 'localhost'; //edit_config
$db_user = 'root';
$db_password = 'root';
$db_port = 3306;
$db_name = 'test';
$con = mysql_connect($db_host,$db_user,$db_password);
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
$db_selected = mysql_select_db($db_name, $con);
if (!$db_selected)
{
die ("Can\'t use test_db : " . mysql_error());
}
//删除已存在表
if(!($result = mysql_query("DROP TABLE IF EXISTS `uchome_test`",$con))){
echo mysql_error();
}
//新建表
$result = mysql_query("CREATE TABLE uchome_test (
uid mediumint(8) unsigned NOT NULL,
username char(15) NOT NULL default '',
shuipiao int(8) unsigned NOT NULL default 20,
PRIMARY KEY (uid)
) ENGINE=MyISAM",$con);
if(!$result){ echo mysql_error(); }
for ($i = 2; $i <= $data->sheets[0]['numRows']; $i++) {
for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {
$insertdata[$j] = $data->sheets[0]['cells'][$i][$j];
}
$result = mysql_query("INSERT INTO `uchome_test` (uid,username,shuipiao) VALUES ('{$insertdata[1]}','{$insertdata[2]}','{$insertdata[3]}')",$con);
if(!$result){ echo mysql_error(); }
echo "插入一行";
echo "\n";
echo "<br />";
}
mysql_close($con);
}else{
echo <<<EOF
<html>
<body>
<form action="{$_SERVER['PHP_SELF']}" method="post"
enctype="multipart/form-data">
<label for="file">Excel:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="import" />
</form>
</body>
</html>
EOF;
}
?>