Вывод в Excel с кодировщиком - PullRequest
7 голосов
/ 23 марта 2011

Я пытаюсь получить отчет из моего проекта codeigniter в excel, но совершенно не знаю, как это сделать.Это уже хорошо работает, просто хотел бы вывод в Excel, а не на страницу.

Любые советы / указатели / объяснения?

спасибо!

Ответы [ 4 ]

10 голосов
/ 23 марта 2011

Я отсылаю вас к этой вики-статье с сайта codeIgniter или к этому учебнику

2 голосов
/ 11 ноября 2011

использовать библиотеку PHPExcel

поместите папку класса в библиотеку приложения codeigniter и вызовите класс PHPExcel

это прекрасно работает с codeigniter

0 голосов
/ 30 октября 2017

Самый простой способ интеграции PHPExcel с codeigniter

  1. Сначала загрузите Php Excel с веб-сайта https://phpexcel.codeplex.com/.

  2. Затем распакуйте копию и поместите в папку application / third_party codeignitor.

  3. Затем перейдите в папку приложение / библиотеки и создайте файл и назовите его Excel.php. И поместите следующий код:

    require_once APPPATH. "/ Third_party / PHPExcel.php"; // Изменить путь, если требуется.

    класс Excel расширяет PHPExcel { публичная функция __construct () { Родитель :: __ конструкция (); } }

4. Теперь создайте контроллер, например Export.php, и в его действие вставьте код:

$this->load->library('Excel');
$query = $this->db->get('users');

$objPHPExcel = new PHPExcel();
$objPHPExcel->getProperties()->setTitle("export")->setDescription("none");

$objPHPExcel->setActiveSheetIndex(0);

$col = 0;
foreach ($header as $field)
{
    $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, 1, $field);
    $objPHPExcel->getActiveSheet()->getStyle('A1:Z1')->getFont()->setBold(true);

    $col++;
}

// Fetching the table data
$row = 2;
foreach($query as $data)
{
    $col = 0;
    foreach ($fields as $field)
    {
        $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, $row, $data[$field]); //change if required.
        $col++;
    }

    $row++;
}

$objPHPExcel->setActiveSheetIndex(0);

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');

// Sending headers to force the user to download the file
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="'.'export_'.$table_name.'.xls"');
header('Cache-Control: max-age=0');

$objWriter->save('php://output');
0 голосов
/ 25 февраля 2013

Если вам нужно что-то быстрое и грязное (и потенциально работающее только в FF), я использую это решение JS:

function exportExcel(html) {
window.open('data:application/vnd.ms-excel;charset=utf-8,' + encodeURIComponent(
'<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=ProgId content=Excel.Sheet><style>body {font-family:Arial} .ean {mso-number-format:0000000000000;}</style></head><body><table>'+html.replace(/[♫^]/gi,'')+'</table></body></html>'));
}

А затем по ссылке в теге заголовка таблицы

<a href="#" onclick="javascript:exportExcel($(this).parents(&quot;.table1&quot;).html());">Excel</a>

Он откроется как HTML Worksheet, который мне подходит. Как видно из кода функции JS, вы можете добавлять стили к столбцам и / или заменять некоторые символы, которые вам не нужны в выводе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...