2015-07-28 6 views
0

Я хочу экспортировать элемент таблицы html в файл xlsx с границами.экспорт элемента таблицы в файл xlsx с границами

Я могу сделать это с помощью xls (not xlsx). С помощью xls Excel может открыть любой html-файл и преобразовать содержимое, включая границы. Для xlsx я должен использовать PHPExcel, но я не могу форматировать мою таблицу (добавление границ ...).

я могу экспортировать в XLSX с приведенным ниже кодом, но нет границ:

<?php 
    require_once '/PHPExcel/Classes/PHPExcel.php'; 
    $file=$_POST['file']."_".date("ymd").".xlsx"; 
    $table = "<table border='1'>".$_POST['table']."</table>"; 
    $table = mb_convert_encoding($table, 'UTF-16LE', 'UTF-8'); 
    $table = "\xFF\xFE" . $table; 

    // save $table inside temporary file that will be deleted later 
    $tmpfile = tempnam(sys_get_temp_dir(), 'html'); 
    file_put_contents($tmpfile, $table); 

    // insert $table into $objPHPExcel's Active Sheet through $excelHTMLReader 
    $objPHPExcel  = new PHPExcel(); 

    $excelHTMLReader = PHPExcel_IOFactory::createReader('HTML'); 
    $excelHTMLReader->loadIntoExisting($tmpfile, $objPHPExcel); 
    $objPHPExcel->getActiveSheet()->setTitle('biblio_uq9_excel'); // Change sheet's title if you want 

    unlink($tmpfile); // delete temporary file because it isn't needed anymore 

    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); // header for .xlxs file 
    header('Content-Disposition: attachment;filename='.$file); // specify the download file name 
    header('Cache-Control: max-age=0'); 

    // Creates a writer to output the $objPHPExcel's content 
    $writer = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); 
    $writer->save('php://output'); 
    exit; 

    ?> 

EDIT: Смотрите мой ответ ниже. Мы ничего не можем сделать. Формат Excel .xlsx не позволяет автоматически преобразовывать файл с разделителями/разметкой.

ответ

0

Это все родной Excel.

Старая версия Excel (.xls) разрешает открывать непосредственно текстовый файл с разделителями или файл разметки (xml, html), который Excel преобразует правильно. Excel также может преобразовать somme css styling, например, применить границу следующим образом: <table border=1>

Новый Excel (.xlsx) не позволяет этого, поэтому необходим такой инструмент, как PHPExcel. PHPExcel преобразует таблицу html в чистый Excel, но мы теряем все формы.

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