Export HTML table to excel with text and images

前端 未结 1 786
我在风中等你
我在风中等你 2021-01-15 10:18

This question has been asked a few other posts, but the solution is not provided. I want to get an Excel output from a HTML table with photos and text. I found the following

相关标签:
1条回答
  • 2021-01-15 10:56

    If you don't need an original Excel-File, but a file, which displays the columns of your table in Excel (And can be edited within Excel or LibreOffice Calc or many other programs), you should consider using CSV (comma-separated values).

    It's easy to create and edit and there is no need of using any PlugIn or Library.

    Possible Output

    Column Name 1, Column Name 2, Column Name 3
    'Row1Val1', 'Row1Val2', 'Row1Val3'
    'Row2Val1', 'Row2Val2', 'Row2Val3'
    'Row3Val1', 'Row3Val2', 'Row3Val3'
    

    Convert to Excel

    But in case you really want an Excel File, PHPExcel will be your friend. It uses the CSV file to create a fully operational Excel-File.

    include 'PHPExcel/IOFactory.php';
    
    $objReader = PHPExcel_IOFactory::createReader('CSV');
    
    // If the files uses a delimiter other than a comma (e.g. a tab), then tell the reader
    $objReader->setDelimiter("\t");
    // If the files uses an encoding other than UTF-8 or ASCII, then tell the reader
    $objReader->setInputEncoding('UTF-16LE');
    
    $objPHPExcel = $objReader->load('MyCSVFile.csv');
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
    $objWriter->save('MyExcelFile.xls');
    

    Example Code Snippet from: csv to excel conversion

    Image insertion

    PHP Excel provides a functionality to include images:

    $objDrawing = new PHPExcel_Worksheet_Drawing();
    $objDrawing->setName('PHPExcel logo');
    $objDrawing->setDescription('PHPExcel logo');
    $objDrawing->setPath('./images/phpexcel_logo.gif');       // filesystem reference for the image file
    $objDrawing->setHeight(36);            
    $objDrawing->setCoordinates('D24');    
    $objDrawing->setOffsetX(10);                
    $objDrawing->setWorksheet($objPHPExcel->getActiveSheet());
    

    Snippet From CodePlex.

    0 讨论(0)
提交回复
热议问题