Нужно разработать приложение для преобразования расписания из формата Excel в бд, используя PHP. Короче, нужно парсер написать для чтения эксел страниц. Кидайте свои мысли, идеи. Всякой информации буду рад)). Заранее благодарю...
[Ответ]
csv, txt, для последнего екселя - xml в конце концов... =)
А вообще библиотек по работе с ёкселем для php выше крыши - яндекс тебе в помощь.
[Ответ]
Вот кусочек скрипта, обрабатывающего txt файл екселя (писал около месяца назад как раз для этих целей). Получать файл надо методом copy-paste из екселя в блокнот. Если получать средствами екселя, то еще наставляет туда мусора, чтобы потом самому корректно разобрать этот файл.
<?
$FILE_NAME="table.txt";
$COLUM_NAME="col1,col2,col3,col4";
$TABLE="data";
/*
Подключаемся к MySQL;
в $identif заносим идентификатор соединения.
*/
$PATTERN="\t"; //Разделитель полей - табуляция.
$QUERY="INSERT INTO ".$TABLE."(".$COLUM_NAME.") VALUES";
$COLUMS=split ("\,",$COLUM_NAME);
if(!$FILE = file($FILE_NAME))
{
echo"<BR>Ошибка открытия файла<BR>";
}
else
{
echo"<BR>Файл ".$FILE_NAME." загружен<BR>";
foreach($FILE as $LINE)
{
$VALUES=split($PATTERN,$LINE);
$INSERT_VALUES="(";
for ($i=0;$i<count($COLUMS);$i++)
{
$INSERT_VALUES.="'".addslashes($VALUES[$i])."'";
if($i<count($COLUMS)-1) {$INSERT_VALUES.=",";}
}
$INSERT_VALUES.=")";
$query=$QUERY.$INSERT_VALUES;
if(!mysql_query($query,$identif))
{echo "<BR>Ошибка записи данных<BR>";}
}
}
?>
[Ответ]
Да, еще под win32 к ёкcелю можно обращаться как к базе данных через ODBC, примерно так:
oConn.Open "Driver={Microsoft Excel Driver (*.xls)}; DriverId=790; Dbq=\somepath\mySpreadsheet.xls; DefaultDir=\somepath;"
или через OLE DB
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=\somepath\expenses.xls; Extended Properties=""Excel 8.0;HDR=Yes;""";
и потом обычным select... from...
Только там тонким местом будет типизация колонок и учет первой строки как заголовка.
[Ответ]
Сообщение от dn2k4:
под win32 к ёкcелю можно обращаться
АФАИР, для этого нужно, чтобы ексель был установлен.
[Ответ]