2016-06-14 5 views
1

Все в названии,Экспорт HTML таблицы в шаблон XLs PHPExcel

Я просто хочу экспортировать HTML таблицу в шаблон .xls используя PHPExcel.

Я искал последние два дня в Google, но не нашел рабочего решения.

Заранее спасибо.

EDIT

Я нашел это в StackOverflow, но я не мог работать с ним

// $sql = sql query e.g "select * from mytablename" 
    // $filename = name of the file to download 
     function queryToExcel($sql, $fileName = 'name.xlsx') { 
       // initialise excel column name 
       // currently limited to queries with less than 27 columns 
     $columnArray = array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"); 
       // Execute the database query 
       $result = mysql_query($sql) or die(mysql_error()); 

       // Instantiate a new PHPExcel object 
       $objPHPExcel = new PHPExcel(); 
       // Set the active Excel worksheet to sheet 0 
       $objPHPExcel->setActiveSheetIndex(0); 
       // Initialise the Excel row number 
       $rowCount = 1; 
    // fetch result set column information 
       $finfo = mysqli_fetch_fields($result); 
// initialise columnlenght counter     
$columnlenght = 0; 
       foreach ($finfo as $val) { 
// set column header values     
    $objPHPExcel->getActiveSheet()->SetCellValue($columnArray[$columnlenght++] . $rowCount, $val->name); 
       } 
// make the column headers bold 
       $objPHPExcel->getActiveSheet()->getStyle($columnArray[0]."1:".$columnArray[$columnlenght]."1")->getFont()->setBold(true); 

       $rowCount++; 
       // Iterate through each result from the SQL query in turn 
       // We fetch each database result row into $row in turn 

       while ($row = mysqli_fetch_array($result, MYSQL_NUM)) { 
        for ($i = 0; $i < $columnLenght; $i++) { 
         $objPHPExcel->getActiveSheet()->SetCellValue($columnArray[$i] . $rowCount, $row[$i]); 
        } 
        $rowCount++; 
       } 
// set header information to force download 
       header('Content-type: application/vnd.ms-excel'); 
       header('Content-Disposition: attachment; filename="' . $fileName . '"'); 
       // Instantiate a Writer to create an OfficeOpenXML Excel .xlsx file   
       // Write the Excel file to filename some_excel_file.xlsx in the current directory     
       $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); 
       // Write the Excel file to filename some_excel_file.xlsx in the current directory 
       $objWriter->save('php://output'); 
      } 
+0

Если вы попытаетесь сохранить содержимое html 'table' на' .xls', вы получите тот же результат .. попробуйте это !! –

+0

почему html? вы можете получать непосредственно строки из php для генерации excel: https://phpexcel.codeplex.com/wikipage?title=Examples&referringTitle=Home – Mimouni

+0

Опубликуйте результаты поиска, чтобы мы имели представление о том, что вы делаете! –

ответ

0

PHP выполняется на сервере, генерирует страницу HTML, и только генерируемая страница отправляется клиенту!

PHPExcel - это библиотека PHP и, следовательно, также работает на сервере, генерируя файл Excel (а не HTML-страницу), который отправляется клиенту. Вы не можете использовать PHPExcel для создания файла XLS с HTML-страницы, так как эта страница находится на стороне клиента. PHPExcel имеет доступ только к информации на стороне сервера (например, локальные переменные PHP или база данных SQL).

Если вы хотите использовать PHPExcel для генерации вашего файла Excel, скопируйте исходные файлы PHPExcel и примеры на свой сервер. Просто укажите свой браузер на одну из страниц примера и посмотрите, как он генерирует файл Excel, предоставляя вам вариант загрузки, а не показывать его в браузере.

Смежные вопросы