проще...
сохраняем экзель документ как csv
далее задача на 2 пальца... в основе
fgetcsv
привожу кусок кода... одно из старых решений... там много ...сам разбирай
Код:
$rFile = fopen($_FILES['file']['tmp_name'], "r");
$aCsvVal = explode(',',_CsvVal);
$aRow = fgetcsv($rFile, 4000, _CsvSep);// 1 строку пропустили
if (count($aRow)!=15) die('!Ошибка! Неверный формат файла! должно быть 15 колонок');
$rResult = mysql_query('DELETE FROM `m_cat` ') or die(mysql_error());//чистим старую таблу
$iCount = 0;
while ( ($aRow = fgetcsv($rFile, 4000, _CsvSep) ) !== FALSE ) {
//echo implode(' | ',$aRow).'<br />';
$iCount++;
for ($i=0;$i<=14;$i++){
if (!isset($aRow[$i])) $aRow[$i] = 0;
switch ($aCsvVal[$i]){
case 'int':
$aVal[$i] = intval(trim($aRow[$i]));
break;
case 'float':
$aVal[$i] = floatval(str_replace(',', '.', trim($aRow[$i])) );
break;
case 'txt':
$aVal[$i] = '"' . mysql_escape_string(trim($aRow[$i])) . '"';
break;
default:
$aVal[$i] = 0;
}
}
$aVal[15] = mktime();
$aVal[16] = '"'.$iCount.':нет примечаний"';
$sQuery = str_replace('%val%',implode(',',$aVal), _CsvQuery);
//echo $sQuery ;
$rResult = mysql_query($sQuery) or die(mysql_error());
//if ($iCount == 20) exit;