Forum Webscript.Ru
Программирование => PHP => Тема начата: Necrian от 21 Ноября 2003, 19:28:33
-
У меня ТЗ - юзер качает на сервер екселевский прайс, мне нужен скрипт который превратит инфу из файла ексель в хтм (потом я этот код записываю в базу).
Помогите кто знает???
-
Еще забыл добавить, сервак виндовый.
-
пусть юзер сохраняет в экселе файл в виде текстового с разделителями табуляторами и разбирай его построчно
-
а другого способа нет?
заказчик хочет качать именно XLS файл.
сохранять как текст или html его не устраивает, у меня сейчас так сделано - его не устраивает.
-
покопайся по Инету
я по-моему даже здесь видел скрипт который конвертирует xls в csv
-
я конесно извиняюсь, но может мне кто-нибудь популярно объяснить что такое csv, sorry :-(
-
http://www.osp.ru/win2000/worknt/2001/03/343.htm
-
Большое спасибо, ссылочку посмотрел, а не подскажите как из екселя инфу в этот CSV перегнать (функции пхпэшные, алгоритмик там какой нибудь)? Не люблю готовые скрипты, предпочитаю сам писать.
-
А зачем тебе csv? :-))))
-
ты же, вроде, раньше htm хотел?
-
Necrian, тебе надо сюда: http://www.php.net/com
-
ну из csv в htm перегнать не проблема
-
и что же мне надо на http://www.php.net/com???
-
Necrian,а зачем перегонять из csv в htm? :-)
В смысле - зачем из xls в csv, а из Csv - в htm? А почему только два действия? А не 5 или 7?
На http://www.php.net/com описаны функции работы с екселем из РНР.
-
ну если нельзя сразу, xls ->htm, а можно xls ->csv ->htm, то надо так и делать, или я тебя не правильно понял???
А за ссылку спасибо, сейчас попробую разабраться...
-
Кхммм...
Как бы тебе объяснить, родной...
Перевод из одного формата в другой включает в себя два этапа.
1. чтение исходного формата.
2. запись в новый.
Так вот, если в принципе можно прочесть из одного (а конвертация из xls в csv подразумевает, что xls ты читаешь - правильно?), то кто тебя заставляет после этого записывать в csv? А не сразу в htm?
-
кароче RomikChef расскажи, будь другом как мне решить поставленную задачу, с помощью каких функций прочитать поля екселя???
-
Necrian, боюсь, судя по твоему уровню знаний, это тебе не под силу.
Для этого нужна та ссылка, которую я тебе дал.
Там все написано. Даже примеры есть.
-
как же ты интересно мои знания то проверил?
-
RomikChef, чтобы работал класс COM нужно что-бы на сервере стоял офис, или как, а то у меня не работает
$excel=new COM("Excel.sheet");
кричит
Warning: (null)(): Unable to obtain IDispatch interface for CLSID {00020820-0000-0000-C000-000000000046}: The RPC server is unavailable. in ... on line ...
-
нужно
-
Necrian Короче, скачиваешь описание формата и начинаешь пытатся набивать это на РНР, когда дойдёшь до новязчивой мысли о суициде начинай шарить в интернете на предмет уже готовых решений..
-
А почему ты не воспользуешся готовым решением excel to mysql. Вот тебе все сразу в базу записывается. А не хочешь, из мискла в html вытащить не проблема...
excel to mysql (http://www.softportal.com/freesoftware/93/)
-
если уж хотите парсить именно XLS-файл, то ИМХО лучше использовать Perl-овый модуль Spreadsheet::ExcelParser и Spreadsheet::ExcelParser::Simple
Я не сторонник перла, но на ПХП нормальных бесплатных Excel-парсеров я пока не видел
-
Макс, ну ты бы почитал родной пхпклуб :-)
Я, ты думаешь, чем занимался, перед тем, как здесь отвечать? ;-)
Под виндой, комом, это сделать можно.
-
RomikChef
в данном случае можно.
В общем случае мое решение более универсальное, так как не зависит от ОС
-
Спасибо пацаны.
-
Ну значит попробовал я выцепить какие-ниубдь данные из Excel
вот код:
$excel = @new COM("Excel.application") or Die ("Невозможно запустить Excel!
");
print "{$excel->Application->value} {$excel->Application->version}
";
@$openBook=$excel->Workbooks->Open("C:/webworks/e-mails.xls") or Die("Невозможно открыть шаблон! Проверьте задание имени и местоположения файла.
");
$excel->Application->Visible = 0;
$sheet = $openBook->Worksheets(1);
$sheet->activate;
$maximum_strok=100;
$maximum_stolb=3;
for ($i=1;$i<=$maximum_strok;$i++) {
for ($j=1;$j<=$maximum_stolb;$j++) {
$cell = $sheet->Cells($i,$j) ;
$cell->activate;
$arr[$i][$j] = $cell->value;
}
}
echo "";
for ($i=1;$i<=$maximum_strok;$i++) {
echo "";
for ($j=1;$j<=$maximum_stolb;$j++) {
echo "".$arr[$i][$j]." | ";
}
echo "
";
}
echo "
";
$excel->Quit();
unset($excel);
?>
--------------------------------------
Но вот у меня проблема!!!
Срипт отлично работает, когда число ячеек меньше 100 штук, а вот при приближении количества опрашиваемых ячеек к 100 Apache просто вырубается на хрен! Пишет "Apache вызвал недопустимую ошибку и будет закрыт!"
Че за херня? Мудрые люди не подскажите?
И заодно, не подскажите, как определить количество заполненных ячеек в листе, т.е. на какой строке и каком столбце стоит последняя заполненная ячейка?
-
Necrian:
заказчик хочет качать именно XLS файл.
сохранять как текст или html его не устраивает, у меня сейчас так сделано - его не устраивает.
они много чего хотят...
убеждай
-
Пацаны, я нашел нармальный парсер для этого, если кому нужен пишите, отправлю...
-
а на чем парсер? какие модули использует то?
-
Точно не ком, работает и под виндой и под юниксом, как я понял кто-то нарыл исходники экселя ...
-
вышли не в падлу на мыло: tochno@beep.ru
-
Всем добрый день
Necrian:
Пацаны, я нашел нармальный парсер для этого, если кому нужен пишите, отправлю
плз, вышли, а то тоже ищу решение, правда в обратную сторону,
а тут будет очень интересно и полезно
mailto:boratustra@yandex.ru
-
Кароче кому надо - вот :
http://www.gdg.spb.ru/xls2html.rar
-
Word2HTML Onlinе, XLS2HTML Onlinе
On line версия, не требующая загрузки находиться тут http://psylive.ru/word2html/
Вы можете бесплатно использовать этот конвертер, который преобразует текст из формата Word HTML (или любой другой слишком большой HMTL текст из буфера обмена) в "Чистый" формат HTML.
Особенности:
1. Это - обычное окно браузера, а не exe-шник. Не требует скачивания, не требует установки совместимость с буфером обмена Windows. Для правильной работы нужен только Интернет.
2.Собирает email адреса из кода html. (Получает все электронные адреса со страницы)
3.Получение ссылок (выдаются все ссылки со страницы).
4.Сохраняются абзацы, начертание (жирность, курсив, подчеркивание), выравнивание, списки, ссылки, таблицы
5. Таблицы (в т. ч. и из Excel) корректно преобразуются в html-таблицы
6. Удаляются скрипты, стили, размер, тип и цвет шрифта (что удалять, а что оставлять - настраивается)
7. Удаляются ненужные (невидимые) или неправильные свойства тегов
8. В отличии от обычного "Word"-> "Файл"-> "Сохранить как HTML" полученный html-код в десяток раз меньше за счет убирания мусора
9. Адреса URL, e-mail после выдергивания выдаются в отсортированном списке
10. Позволяет заменять строчки кода
11. Оптимизация кода может достигать 70%
12. Можно вообще удалить все теги и html код со страницы
Варианты использования:
1 Это отличный софт для web-мастеров, которые вынуждены регулярно работать с текстом
2 XLS2HTML Для оптимизации кода в таблицах, прайс листах, для последующего хранения.
3 Для веб издателей.
4 Для спамеров и граберов для получения email и url
5 Для нахождения контактных емайл обычным пользователям
6 Пожелания по расширению возможностей направлять на psyliveru@yandex.ru c пометкой "WORD2HTML"
7 Основной адрес проекта Psylive.ru
прошу не считать за рекламу, т.к. скрипт бесплатный, и действительно очень нужный программистам.
-
Кабан
Идите лесом, товарищ. Подобных вещей - до дури.