Большой Воронежский Форум
» Программирование>Связка Excel -> PHP
artmk 01:59 03.05.2008
Нужно разработать приложение для преобразования расписания из формата Excel в бд, используя PHP. Короче, нужно парсер написать для чтения эксел страниц. Кидайте свои мысли, идеи. Всякой информации буду рад)). Заранее благодарю... [Ответ]
Part!zan 03:27 03.05.2008
artmk, а сконвертить ексель в более другой формат что мешает? [Ответ]
artmk 03:31 03.05.2008
Напрмер? [Ответ]
dn2k4 12:07 03.05.2008
csv, txt, для последнего екселя - xml в конце концов... =)

А вообще библиотек по работе с ёкселем для php выше крыши - яндекс тебе в помощь. [Ответ]
Dao 12:31 03.05.2008
Вот кусочек скрипта, обрабатывающего 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>";}
}
}
?> [Ответ]
dn2k4 12:55 03.05.2008
Да, еще под 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...

Только там тонким местом будет типизация колонок и учет первой строки как заголовка. [Ответ]
Part!zan 15:14 03.05.2008

Сообщение от dn2k4:
под win32 к ёкcелю можно обращаться

АФАИР, для этого нужно, чтобы ексель был установлен. [Ответ]
dn2k4 15:42 03.05.2008
Нет, ексель не нужен. Драйвера уровня ODBC по-моему идут в комплекте начиная с windows 2000, а OLE DB провайдер ставится каким-то из MDAC, версию не помню... [Ответ]
alemiks 17:11 03.05.2008

Сообщение от dn2k4:
выше крыши

точнее, целых две)
платная и бесплатная
а вообще, достаточно удобен csv, на крайний случай xml [Ответ]
dn2k4 18:31 03.05.2008

Сообщение от alemiks:
и бесплатная

Ну да, она же в PEAR входит...
Это крупные и известные которые - я ввиду имел что есть туева хуча собранных на коленке классов и примеров, например http://www.sinisha.ru/progs/xlsparser.rar [Ответ]
Вверх