За последние 24 часа нас посетили 22346 программистов и 996 роботов. Сейчас ищут 637 программистов ...

Таблицы Excel и PHP

Тема в разделе "PHP для новичков", создана пользователем Master_php, 10 апр 2007.

  1. kirill533

    kirill533 Активный пользователь

    С нами с:
    19 май 2008
    Сообщения:
    1
    Симпатии:
    0
    У меня такой глюк вылазил, когда я один и тот-же файл дважды подряд пытался обработать.
     
  2. forint

    forint Активный пользователь

    С нами с:
    7 фев 2008
    Сообщения:
    26
    Симпатии:
    0
    кто ни будь .. выложите этот скрипт плиз .. у автора уже 404..
     
  3. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    восстановил. уже не 404
     
  4. joper

    joper Активный пользователь

    С нами с:
    17 июн 2008
    Сообщения:
    1
    Симпатии:
    0
    пробую распарсить файл
    http://1c.ru/rus/partners/pricelst.jsp
    В столбике "Наименование" не выводятся русские названия.
    Точнее выводятся, но 1 из 10. Помогите, плз, очень нужно
     
  5. Cron

    Cron Активный пользователь

    С нами с:
    10 июл 2008
    Сообщения:
    289
    Симпатии:
    0
    Адрес:
    Украина, Сумы
    А можно вопрос: возможно ли вытянуть формулы из ячеек?
     
  6. John What

    John What Активный пользователь

    С нами с:
    27 янв 2007
    Сообщения:
    33
    Симпатии:
    0
    да ладно, кончайте дурака валять.
    Лучше EMS ничего нет.
    И в частности для импорта в бд из разных форматов, xls в том числе.
    Даже можно не искать
     
  7. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Что такое EMS ?
     
  8. Nobody cares.
     
  9. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Да нихрена. Мне интересно, что же это за зверь такой......
     
  10. Frozen

    Frozen Активный пользователь

    С нами с:
    20 окт 2008
    Сообщения:
    540
    Симпатии:
    0
    Адрес:
    Москва
    лол :)

    А ems это программка для работы с мускулом. windows. платная
     
  11. roamer

    roamer Активный пользователь

    С нами с:
    24 дек 2008
    Сообщения:
    1
    Симпатии:
    0
    Простите за возможно глупый вопрос.

    Где, все-таки, можно посмотреть примеры записи инфы в ячейки Excel
    (с использованием OLE Automation в среде PHP-4) ?
    Или прочитать ?

    Как запустить Excel в режиме OLE Automation server.
    Как Получить ссылку на рабочую книгу.
    Как создать новый лист (и получить ссылку на существующий) ?
    Как записать в ячейку.

    Хотелось бы поять суть.

    Подскажите, pls.
     
  12. ageent

    ageent Активный пользователь

    С нами с:
    9 ноя 2008
    Сообщения:
    32
    Симпатии:
    0
    Не работает парсер при формате .xlsx Вот файл http://www.ageent.ru/images/prim.zip

    Выбивает ошибку.
    ERROR: файл не EXCEL!
    Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

    В чем может быть проблема? Файл EXCEL!
     
  13. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    рсширенире помменяй или скрипт поправь
     
  14. Mellon

    Mellon Активный пользователь

    С нами с:
    22 май 2009
    Сообщения:
    1
    Симпатии:
    0
    Всем привет. Есть необходимость достать из экселя несколько строчек на разных языках (в том числе на русском, китайском) и сгенерить из них картинку. Для того, чтобы забирать данные из экселя использую комовские объекты. Русский язык сделал перекодировкой "$cell_value = iconv ("cp1251","utf-8",$cell_value);" (до этого отображались краказябрики). А вот китайский победить не получается. Он выводится на картинке как "????". При этом если скопировать китайский из экселя на прямую в скрипт ($chn = "您的设备"; а потом делать ImageTTFText ($im, 15, 0, 10, 20, $white, "Arialuni.ttf", $chn); ), то на картинке отображаются иероглифы.
    В общем вот листинг с комментариями:

    Код (Text):
    1. <?php
    2. //создаём COM объект для экселя и открывает нужный файл
    3. $excel = new COM("Excel.Application");
    4. $excel->Visible = 0;
    5. $excel->Workbooks->Open("Prompts.xls");
    6. $sheet = $excel->Worksheets(1);
    7. $sheet->activate;
    8. //в цикле перебираем полезные ячейки
    9. for ($i=4; $i<20; $i++) {
    10.     for ($j=4; $j<15; $j++){
    11.     $cell = $sheet->Cells($i,$j);
    12.     $cell->Activate;
    13.         //получаем значение ячейки (см. сноску *)
    14.     $cell_value = $cell->value;
    15.         //лениво проверять не пустая ли строчка, потому просто рисую пробел перед ней
    16.     $cell_value = " ".$cell_value;
    17.         //исправляем русский (см. сноску **)
    18.     $cell_value = iconv ("cp1251","utf-8",$cell_value);
    19.     $i_str = strval ($i);
    20.     $j_str = strval ($j);
    21.     $fl_name = "scr_".$i_str."_".$j_str.".png";
    22.         //генерим картинку
    23.     Header ("Content-type: image/png");
    24.     $height = 50;
    25.     $width = 200;
    26.     $im = ImageCreate ($width, $height);
    27.     $white = ImageColorAllocate ($im, 255, 255, 255);
    28.     $black = ImageColorAllocate ($im, 0, 0, 0);
    29.     ImageFill($im, 0, 0, $black);
    30.         //Другими шрифтами китайский полностью не выводится.
    31.     ImageTTFText ($im, 15, 0, 10, 20, $white, "Arialuni.ttf", $cell_value);
    32.     ImagePNG ($im,$fl_name);
    33.     ImageDestroy ($im);
    34.     Header ("Content-type: text/html");
    35.     }
    36. }
    37. $excel->Workbooks->Close();
    38. $excel->Quit();
    39. unset($sheet);
    40. unset($excel);
    41. ?>
    * Вот здесь может быть @ и зарыта, потому как если эхом вывести полученное из экселя, то оно так же отображается как "???" в случае китайского языка.
    ** Для китайского пытался делать: $cell_value = iconv ("ХХХ","utf-8",$cell_value);, где вместо ХХХ ставил - big5_bin; big5_chinese_ci ; gb2312_bin; gb2312_chinese_ci ; gbk_bin ; gbk_chinese_ci; utf8_general_ci. С ними вообще ничего не выводилось на картинку. Еще пробовал gb2312 - с ним европейские языки выводятся нормально, китайский выводится как "?????", а русский выводится иероглифами.

    В общем видимо всё ломается на этапе забирания строки на китайском из экселя, только вот не ясно эксель отдаёт криво или я забираю не так как надо. Какие будут советы?
     
  15. Lex

    Lex Активный пользователь

    С нами с:
    24 май 2009
    Сообщения:
    1
    Симпатии:
    0
    Проблема в том что файл действительно не ехель.... Ты приколись, переименуй в .zip и открой архиватором... Думаю написать свой скрипт парсинга - труда не составит ;))
     
  16. El Loco

    El Loco Активный пользователь

    С нами с:
    26 дек 2008
    Сообщения:
    41
    Симпатии:
    0
    У меня вопрос по кодировкам.
    В данном случае используется юникод.
    Будет ли корректно, если я напишу таким образом? -->
    PHP:
    1. header ("content-type: text/html; charset=windows-1251");
    вместо
    PHP:
    1. header ("content-type: text/html; charset=utf-8");
    и

    PHP:
    1.     return iconv('UNICODELITTLE','windows-1251',$str);
    вместо
    PHP:
    1.     return iconv('UNICODELITTLE','UTF-8',$str);
     
  17. silverworld

    silverworld Активный пользователь

    С нами с:
    1 авг 2009
    Сообщения:
    10
    Симпатии:
    0
    Адрес:
    Ðîññèÿ
    Таблицы Excel и PHP

    б Ð
     
  18. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    silverworld
    пеервожу.
    =)

    А мне наоборот надо вставить таблицу Еэжек на страницу что бы е? можно было редактировать╝
    Ну ? о ? орядку╝ Я сделал смету в екселе и ??очу выложить на страницу╛ ? равда не ОУО╛ а УРЛК╛ но суть от этого не меняется╝ Вот╛ соответственно у ? осетителей страницы должна быть возможность за? олнять эту таблицу╝ Подскажите╛ ? ожалуйста╛ возможно ли такое сделать╘
     
  19. artemik12

    artemik12 Активный пользователь

    С нами с:
    17 сен 2009
    Сообщения:
    2
    Симпатии:
    0
    Автор извени, не буду засорять форум новой темой, напишу сюда..
    В общем, нужно решить одну
    задачу в Microsoft Excel (если кто-то может
    реализовать это же, например в PHP, то это
    тоже подойдет), если хотите, то могу и
    заплатить за нее.
    В общем вот суть задачи:
    1)Ячейки A1, B1 и C1 пустые.
    2)В ячейках A2, B2, C2, находятся числа (они
    всегда положительные и больше 1, значение
    этих чисел я должен иметь возможность
    изменять).
    3) Значение ячеек A4, B4 и C4, равно (A4=
    A2*A3, B4= B2*B3, C4= C2*C3) и
    A4>D3, B4>D3, C4>D3.
    4)Значение ячейки D3= A3+ B3+C3
    4)Нужно получить значения в ячейках A3,
    B3 и C3, чтобы эти значения были
    положительные и больше 20.
     
  20. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    440Hz
    Я что-то допереть не могу, в какой кодировке он настрочил? =)
     
  21. softwarebbs

    softwarebbs Активный пользователь

    С нами с:
    28 окт 2009
    Сообщения:
    43
    Симпатии:
    0
    Вопрос еще один, можно ли получить цветные ячейки?
     
  22. SomeDay

    SomeDay Активный пользователь

    С нами с:
    29 окт 2009
    Сообщения:
    13
    Симпатии:
    0
    что то не работает
     
  23. SomeDay

    SomeDay Активный пользователь

    С нами с:
    29 окт 2009
    Сообщения:
    13
    Симпатии:
    0
    а все работает спасибо автору
     
  24. SomeDay

    SomeDay Активный пользователь

    С нами с:
    29 окт 2009
    Сообщения:
    13
    Симпатии:
    0
    а как можно информацию которую вывели скриптом на страницу еще и записать в БД в таблицу определенную ?
     
  25. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    берешь исходник, смотришь где информация выводится на страницу и вместо этого принта формируешь insert запрос в нужную тебе таблицу.