Добрый вечер. Сегодня столкнулся с некой задачкой, решение которой, сам к сожалению найти не смог =( Прошу поучаствовать и помочь советом да и скриптом=))( извиняюсь за наглость) Сам пишу на перле, но тут вдруг привиделось во сне моему начальнику, что надо что-то на РНР переделать и поставил он мне следующую задачку: в результате отработки некого скрипта, допустим parser.pl, мы имеем текстовый фай с данными в виде таблицы ( ух как банально звучит).. Код (Text): 281 * Викторов 281 * Петров 276 * Измайлов 204 * Иванов 199 * Федьков ......*...... ......*...... и так далее , кстати формат текста в файле UTF-8 ......*...... ......*...... так вот на данный момент у меня стоит задача экспортировать с этого файла (input.txt) в excel (output.xls ), да так что бы состоял output.xls из двух столбцов: Код (Text): ______________ |281 | Викторов | |281 | Петровa. | |276 | Измайлов | |204 | Иванов | |199 | Федьков | ......................... ........и тд........... не долго думая ( моя проблема =(( ) я пошел по накатанной дорожке в гуггль. Читал мануалы, разбирал примеры экспорта из xls в бд с вашего сайта, надеясь понять логику, но к сожалению пришел в тупик, признаю что слишком сложно для меня =(.. хотя имею следующий код, не скажу что он мой, но он меня заинтересовал, увидел его у КЛАЦ.. Код (Text): <?php $filename ="excelreport.xls"; $contents = "testdata1 \t testdata2 \t testdata3 \t \n"; header('Content-type: application/ms-excel'); header('Content-Disposition: attachment; filename='.$filename); echo $contents; ?> не буду лукавить, заинтересовал меня он своей простотой, что вообще то меня и в тот же момент напрягло.. так вот вопрос, будет ли данный скрипт создавать "здоровый", рабочий xls файл. Если да, то как он обработает ограничение Excel - максимум 65536 строк на одном листе когда у меня файл "input.txt" может достигать и пары сотен тысяч строк? ну а если я ошибся и скрипт просто создает просто файл с данным расширением и просто заполняет его "contents", то не могли бы вы мне подсказать, привести рабочий пример решения данной задачки.? с Уважением Алексей.
скрипт просто создает просто файл с данным расширением. попробуйте посмотреть http://phpexcel.codeplex.com/
Спасибо за быстрый ответ, когда я "гуглил" я встречался и на сколько мне моих знаний хватало пытался вникнуть в этот класс. К моему сожалению, в нем очень много не нужного мне и как я уже говори, моих знаний не хватает для осмысления всего что там, честно я просто теряюсь... В моей ситуации надо экспортировать данные с текстовика в файл excel. Если у вас есть такая возможность, то буду очень благодарен увидите простейший скрипт который такое делает используя класс PHPExcel или еще что лучше не использует сложных классов..
PHP: <?php $objPHPExcel = new PHPExcel(); $active_sheet = $objPHPExcel->getActiveSheet(); $active_sheet->setCellValueByColumnAndRow(1, 1, 'aaa'); $active_sheet->setCellValueByColumnAndRow(2, 2, 'bbb'); // Установка необходимых заголовков header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="Report.xls"'); header('Cache-Control: max-age=0'); // Отправка файла $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output');
iliavlad спасибо огромное за приведенный пример, подтолкнуло меня к некоторым мыслям в моем вопросе..
а csv, который открывается в любой врсии эксэля не пойдёт? http://www.php.net/manual/en/function.fputcsv.php
Luge эксель может некоторые числа воспринимать как даты, при выводе смотрится достаточно странно. надо вручную их переделывать. и еще там какие-то сложности бывают. лучше сразу в формат экселя переводить.
к сожалению нет, в итоге будут строиться графики.. мне удобней импортировать в xls и аналог делать на вебе.
Еще раз Добрый день. в результате работы с данным классом, пришел к одной проблеме (извиняюсь если данный вопрос не по теме).: я решил инклюдить данный класс прямо в перловый скрипт, класс отработал нормально, но будет ли он видеть и принимать переменные Перлового скрипта ? ( $key ) Код (Text): перловая часть вывода данных print OUTPUT "$count{$key} * $key\n"; $c1++; $c++; } print "</pre>\n"; инклюд php скрипта system("php5 /home/oplya198/www/site1/public_html/lib/Tests/test.php"); если да, да и если нет. не подскажите мне, как заставить php часть, Код (Text): $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A1', 'Hello') ->setCellValue('B2', 'world!') ->setCellValue('C1', 'мир вам') брать из переменной массив и писать их в excel ? (из текстового файла, как в примере в первых постах.) еще раз извиняюсь если что то не понятно написал, и если вопрос банально глуп. зы; нашел вот такой пример : Код (Text): ================ # cat 12 #!/usr/bin/perl print "================\n"; $test = `php ./index.php &`; print $test; print "================\n"; но он не подходит по причине того, что массив получает перл, а мне надо массив из перла поймать пхп сриптом . =(