最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Export HTML table to excel with text and images - Stack Overflow

programmeradmin2浏览0评论

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 two plugins for the Excel output(The most plete plug in my opinion):

.php

and

.html

<table id="customers" border="1" width="100%" >
<thead>         
    <tr class='warning'>
        <th>Country</th>
        <th>Population</th>
        <th>Date</th>
        <th>%ge</th>
        <th>Photo</th>
    </tr>
</thead>
<tbody>
    <tr>
        <td>Chinna</td>
        <td>1,363,480,000</td>
        <td>March 24, 2014</td>
        <td>19.1</td>
         <td><img src=".jpg" width='60'  height='60'/></td>
    </tr>
    <tr>
        <td>India</td>
        <td>1,241,900,000</td>
        <td>March 24, 2014</td>
        <td>17.4</td>
       <td><img src=".jpg" width='60'  height='60'/></td>
    </tr>
    <tr>
        <td>United States</td>
        <td>317,746,000</td>
        <td>March 24, 2014</td>
        <td>4.44</td>
          <td><img src=".jpg" width='60'  height='60'/></td>
    </tr>
    <tr>
        <td>Indonesia</td>
        <td>249,866,000</td>
        <td>July 1, 2013</td>
        <td>3.49</td>
         <td><img src=".jpg" width='60'  height='60'/></td>
    </tr>
    <tr>
        <td>Brazil</td>
        <td>201,032,714</td>
        <td>July 1, 2013</td>
        <td>2.81</td>
        <td><img src=".jpg" width='60'  height='60'/></td>
    </tr>
</tbody>

and exporting as

<a href="#" onClick="$('#customers').tableExport({type:'excel',escape:'false'});">export</a>

I also included a column with images as shown in this fiddle as

If I export this table to Excel, the images are not showing. So how can I export those images too along with the data. What kind of output should be used?

If this is not possible in Excel output, what format should be used for output?

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 two plugins for the Excel output(The most plete plug in my opinion):

http://ngiriraj./pages/htmltable_export/demo.php

and

http://www.jqueryscript/table/Export-Html-Table-To-Excel-Spreadsheet-using-jQuery-table2excel.html

<table id="customers" border="1" width="100%" >
<thead>         
    <tr class='warning'>
        <th>Country</th>
        <th>Population</th>
        <th>Date</th>
        <th>%ge</th>
        <th>Photo</th>
    </tr>
</thead>
<tbody>
    <tr>
        <td>Chinna</td>
        <td>1,363,480,000</td>
        <td>March 24, 2014</td>
        <td>19.1</td>
         <td><img src="https://i.sstatic/CekuQ.jpg" width='60'  height='60'/></td>
    </tr>
    <tr>
        <td>India</td>
        <td>1,241,900,000</td>
        <td>March 24, 2014</td>
        <td>17.4</td>
       <td><img src="https://i.sstatic/CekuQ.jpg" width='60'  height='60'/></td>
    </tr>
    <tr>
        <td>United States</td>
        <td>317,746,000</td>
        <td>March 24, 2014</td>
        <td>4.44</td>
          <td><img src="https://i.sstatic/CekuQ.jpg" width='60'  height='60'/></td>
    </tr>
    <tr>
        <td>Indonesia</td>
        <td>249,866,000</td>
        <td>July 1, 2013</td>
        <td>3.49</td>
         <td><img src="https://i.sstatic/CekuQ.jpg" width='60'  height='60'/></td>
    </tr>
    <tr>
        <td>Brazil</td>
        <td>201,032,714</td>
        <td>July 1, 2013</td>
        <td>2.81</td>
        <td><img src="https://i.sstatic/CekuQ.jpg" width='60'  height='60'/></td>
    </tr>
</tbody>

and exporting as

<a href="#" onClick="$('#customers').tableExport({type:'excel',escape:'false'});">export</a>

I also included a column with images as shown in this fiddle as

If I export this table to Excel, the images are not showing. So how can I export those images too along with the data. What kind of output should be used?

If this is not possible in Excel output, what format should be used for output?

Share Improve this question edited Mar 18, 2017 at 2:11 Lexib0y 50011 silver badges28 bronze badges asked Apr 7, 2015 at 20:06 user2598812user2598812 4
  • How are you exporting this to Excel? Don't tell me you're simply saving this HTML markup to a file with a .xls extension? – Mark Baker Commented Apr 7, 2015 at 20:13
  • @MarkBaker The first plugin http://ngiriraj./pages/htmltable_export/demo.php I've used for output. Please see demo: jsfiddle/alihesari/o5akj91a – user2598812 Commented Apr 7, 2015 at 20:19
  • 1 @MarkBaker Can I do this by using phpexcel ? – user2598812 Commented Apr 7, 2015 at 20:41
  • 1 Yes you can, though you'd be running it serverside rather than clientside – Mark Baker Commented Apr 7, 2015 at 21:51
Add a ment  | 

1 Answer 1

Reset to default 1

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 (ma-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 ma (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)

  1. 暂无评论