我有excel文件,里面有我学生表的数据
现在我想在学生表中的mysql中导入这个文件
这是我将数据从excel导入学生表的代码。
<?php
require_once("class/connection.php");
include("libs/Excel/reader.php");
//change-- table name,title and imgdir
$table_name = "student";
$title="Excel Import";
$page = $_SERVER['PHP_SELF'];
if($_REQUEST["Save"])
{
// ExcelFile($filename, $encoding);
$data = new Spreadsheet_Excel_Reader();
// Set output Encoding.
$data->setOutputEncoding('CP1251');
//assign filename
$data->read($_FILES['file']['tmp_name']);
for ($x = 2; $x <= count($data->sheets[0]["cells"]); $x++)
{
$studname = $data->sheets[0]["cells"][$x][1];
$phno = $data->sheets[0]["cells"][$x][2];
$mobno = $data->sheets[0]["cells"][$x][3];
$email = $data->sheets[0]["cells"][$x][4];
$clgname = $data->sheets[0]["cells"][$x][5];
$streamname = $data->sheets[0]["cells"][$x][6];
$remarks = $data->sheets[0]["cells"][$x][7];
$gender = $data->sheets[0]["cells"][$x][8];
$address = $data->sheets[0]["cells"][$x][9];
$query = "INSERT INTO " . $table_name . "(studname,phno,mobno,email,clgname,streamname,remarks,gender,address)
values('$studname','$phno','$mobno','$email','$clgname','$streamname','$remarks','$gender','$address')";
mysql_query($query) or die(mysql_error());
}
}
?>
<!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=iso-8859-1" />
<title>Admin Panel -<?php echo $title;?></title>
<link rel="SHORTCUT ICON" type="image/x-icon" href="images/cloelle_favicon.ico">
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><?php include("header.php");?></td>
</tr>
<tr>
<td align="center" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0">
</table></td>
<td width="6"><img src="images/home_box_rt.jpg" width="6" height="28" /></td>
</tr>
<tr>
<td background="images/home_box_lbg.jpg"> </td>
<td height="120" align="center" valign="top" class="successmsg">
<?php
if($_REQUEST['submit'])
{
echo "Your data Transfered Successfully!";
}
else
{
echo "Please Upload Your Excel File Here!";
}
?>
<form id="StdForm" name="StdForm" enctype="multipart/form-data" method="post" onsubmit="javascript: return chkValid();">
<p>
<input type="file" name="file" id="file" />
</p>
<p>
<input type="submit" id="Save" name="Save" class="button" value="submit" />
</p>
</form></td>
<td background="images/home_box_rbg.jpg"> </td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<tr>
<td><?php include("footer.php"); ?></td>
</tr>
</table>
</body>
</html>
现在,当我运行此代码时,会生成以下错误。
The filename C:\xampp\tmp\phpFCD3.tmp is not readable
所以我错过了什么 提前谢谢你
答案 0 :(得分:1)
确保您尝试阅读的文件以microsoft excel(.xls)格式保存。我在尝试使用excel阅读器时遇到同样的错误,然后发现我的.xls扩展文件是CSV格式的。所以我打开了我的文件并保存为microsoft excell(.xls),并且它有效。
答案 1 :(得分:0)
<?php //for CSV
function myprintCSV($aryData = array(), $filetype = "csv", $fileNamesalt = "csv", $bolCols = true)
{
if (!is_array($aryData) || empty($aryData))
{
exit(1);
}
// header
header('Content-Description: File Transfer');
header('Content-Encoding: UTF-8');
if($filetype=="csv"){
header("Pragma: public");
header('Content-Type: text/csv; charset=utf-8');
header("Content-Disposition: attachment; filename=" . $fileNamesalt . time().".csv");
}
header('Expires: 0');
header('Cache-control: private, must-revalidate');
header("Pragma: public");
//echo "<pre>";
//print_r($aryData);die;
// Spaltenoberschriften
if ($bolCols)
{
$aryCols = array_keys($aryData[0]);
array_unshift($aryData, $aryCols);
}
// Ausgabepuffer for fputcsv
ob_start();
// output Stream for fputcsv
$fp = fopen("php://output", "w");
if (is_resource($fp))
{
foreach ($aryData as $aryLine)
{
fputcsv($fp, $aryLine, ',', '"');
}
$strContent = ob_get_clean();
// Excel SYLK-Bug
// http://support.microsoft.com/kb/323626/de
$strContent = preg_replace('/^ID/', 'id', $strContent);
//$strContent = utf8_decode($strContent);
//$intLength = mb_strlen($strContent, 'utf-8');
// length
//header('Content-Length: ' . $intLength);
// kein fclose($fp);
echo "\xEF\xBB\xBF";
echo $strContent;
exit(0);
}
ob_end_clean();
exit(1);
}
//end
//
function createColumnsArray($end_column, $first_letters = '')
{
$columns = array();
$length = strlen($end_column);
$letters = range('A', 'Z');
// Iterate over 26 letters.
foreach ($letters as $letter) {
// Paste the $first_letters before the next.
$column = $first_letters . $letter;
// Add the column to the final array.
$columns[] = $column;
// If it was the end column that was added, return the columns.
if ($column == $end_column)
return $columns;
}
// Add the column children.
foreach ($columns as $column) {
// Don't itterate if the $end_column was already set in a previous itteration.
// Stop iterating if you've reached the maximum character length.
if (!in_array($end_column, $columns) && strlen($column) < $length) {
$new_columns = createColumnsArray($end_column, $column);
// Merge the new columns which were created with the final columns array.
$columns = array_merge($columns, $new_columns);
}
}
return $columns;
}