PHPExcel как сформировать файл

219
22 октября 2017, 23:15
    $xls = new PHPExcel();
        $xls->setActiveSheetIndex(0);
$sheet = $xls->getActiveSheet();
$sheet->setTitle('Участники');
$sheet->setCellValue("A1", 'Категория участия');
$sheet->setCellValue("B1", 'Дата');
$sheet->setCellValue("C1", 'Имя');
$sheet->setCellValue("D1", 'email');
$sheet->setCellValue("E1", 'Телефон');
$sheet->setCellValue("F1", 'Группа');
$sheet->setCellValue("G1", 'Год выпуска');
$sheet->setCellValue("H1", 'Организация');
$sheet->setCellValue("I1", 'Коментарий');
foreach($strOut as $key => $user)
{
    $index = $key+2;
    $sheet->setCellValue("A".$index, $user->txt);
    $sheet->setCellValue("B".$index, $user->date);
    $sheet->setCellValue("C".$index, $user->name);
    $sheet->setCellValue("D".$index, $user->email);
    $sheet->setCellValueExplicit("E".$index, $user->phone, PHPExcel_Cell_DataType::TYPE_STRING);
    $sheet->setCellValue("F".$index, $user->group);
    $sheet->setCellValue("G".$index, $user->year);
    $sheet->setCellValue("H".$index, $user->org);
    $sheet->setCellValue("I".$index, $user->comment);
    $sheet->getStyle('D'.$index)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
}
foreach(range('A','I') as $columnID)
    $sheet->getColumnDimension($columnID)->setAutoSize(true);

$objWriter = PHPExcel_IOFactory::createWriter($xls, 'Excel2017');
    $objWriter->save(str_replace('.php', '.csv', __FILE__));
    $objWriter->save('register.csv');

в чем может быть ошибка?данные не записываются

Answer 1

Т.к PHPExel уже давно не поддерживается, а на замену ему пришёл PhpSpreadsheet, то логично использовать его.

PhpSpreadsheet is the next version of PHPExcel. It breaks compatibility to dramatically improve the code base quality (namespaces, PSR compliance, use of latest PHP language features, etc.).

Because all efforts have shifted to PhpSpreadsheet, PHPExcel will no longer be maintained. All contributions for PHPExcel, patches and new features, should target PhpSpreadsheet develop branch.

However PhpSpreadsheet is still unstable and not yet released. So if you need stability stick to PHPExcel until this project is released. If you prefer to live on the edge you can try to install this project manually via composer, but there is no guarantee and it will likely break again before an official release

Я не знаю, как вы подключаете библиотеку - это оставим на вас. Стоит также отметить, что имеется масса примеров использования, которые идут вместе с библиотекой и которые можно запустить локально.

Попробуйте записать хоть что-нибудь хотя бы в одну ячейку. Например, если ставить всё через composer и использовать IDE типа phpStorm, которая подхватывает все пути на лету, получится следующее

    $spreadsheet = new Spreadsheet();
    $sheet = $spreadsheet->getActiveSheet();
    $sheet->setCellValue('A1', 'Hello World !');
    $format='xlsx';
    $writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, $format);
    $writer->save('hello.'.$format);
READ ALSO
Авторизация root'а в PMA на Ubuntu 16.04 под LAMP

Авторизация root'а в PMA на Ubuntu 16.04 под LAMP

Установил по отдельности пакеты LAMP'aПроблема в авторизации в PHPMyAdmin

223
POST запрос CURL, возвращает 404

POST запрос CURL, возвращает 404

Нужно отправить POST-запрос банку для авторизацииЗапрос отправляю CURL, но возвращается 404 код

296
Регулярка php preg_match table + class

Регулярка php preg_match table + class

Здравствуйте, требуется помощь в написание регулярки для PHP preg_match, нужно вытащить весь текст вместе с тегами (<table>), которые имеют определенный...

234
Передача параметров по кнопке в php

Передача параметров по кнопке в php

На сайте имеется компонент тестирования AriQuizВо время тестирования на вопросы можно отвечать, или пропускать(чтобы ответить позже)

270