导出HTML表格以使文本和图像更好 [英] Export HTML table to excel with text and images

查看:126
本文介绍了导出HTML表格以使文本和图像更好的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这个问题已经被问及其他一些帖子,但是没有提供解决方案。
我想从HTML表格中获取包含照片和文本的Excel输出。我发现以下两个插件用于Excel输出(我认为最完整的插件):



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



p>

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

 < table id =customersborder =1width =100%> 
< thead>
< tr class ='warning'>
< th>国家< / th>
第个人口第< th>
< th>日期< / th>
th%ge< / th>
< th>照片< / th>
< / tr>
< / thead>
< tbody>
< tr>
< td> Chinna< / td>
< td> 1,363,480,000< / td>
< td> 2014年3月24日< / td>
< td> 19.1< / td>
< td>< img src =http://i.stack.imgur.com/CekuQ.jpgwidth = '60'height = '60'/>< / td>
< / tr>
< tr>
< td>印度< / td>
< td> 1,241,900,000< / td>
< td> 2014年3月24日< / td>
< td> 17.4< / td>
< td>< img src =http://i.stack.imgur.com/CekuQ.jpgwidth = '60'height = '60'/>< / td>
< / tr>
< tr>
< td>美国< / td>
< td> 317,746,000< / td>
< td> 2014年3月24日< / td>
< td> 4.44< / td>
< td>< img src =http://i.stack.imgur.com/CekuQ.jpgwidth = '60'height = '60'/>< / td>
< / tr>
< tr>
< td>印度尼西亚< / td>
< td> 249,866,000< / td>
< td> 2013年7月1日< / td>
< td> 3.49< / td>
< td>< img src =http://i.stack.imgur.com/CekuQ.jpgwidth = '60'height = '60'/>< / td>
< / tr>
< tr>
< td>巴西< / td>
< td> 201,032,714< / td>
< td> 2013年7月1日< / td>
< td> 2.81< / td>
< td>< img src =http://i.stack.imgur.com/CekuQ.jpgwidth = '60'height = '60'/>< / td>
< / tr>
< / tbody>



并以

 < a href =#onClick =$('#customers')。tableExport({type:'excel',escape : '假'});>出口< / A> 

我还在列中加入了图片,如此小提琴

如果我将此表格导出到Excel,图像不会显示。那么如何将这些图像与数据一起导出。什么样的输出应该被使用?



如果这在Excel输出中不可行,应该使用什么格式输出?

CSV(逗号分隔值)。



创建和编辑起来很简单,不需要使用任何插件或库。



可能的输出



 列名称1,列名称2,列名称3 
'Row1Val1','Row1Val2','Row1Val3'
'Row2Val1','Row2Val2','Row2Val3'
'Row3Val1','Row3Val2','Row3Val3'



转换为Excel



但是如果您确实需要Excel文件,
PHPExcel 将成为你的朋友。它使用CSV文件创建完全可操作的Excel文件。

  include'PHPExcel / IOFactory.php'; 

$ objReader = PHPExcel_IOFactory :: createReader('CSV');

//如果文件使用逗号以外的分隔符(例如选项卡),则告诉读者
$ objReader-> setDelimiter(\t);
//如果文件使用UTF-8或ASCII以外的编码,则告诉读者
$ objReader-> setInputEncoding('UTF-16LE');

$ objPHPExcel = $ objReader-> load('MyCSVFile.csv');
$ objWriter = PHPExcel_IOFactory :: createWriter($ objPHPExcel,'Excel5');
$ objWriter-> save('MyExcelFile.xls');

示例代码片段来自: csv转换为excel

图片插入



PHP Excel提供了一个包含图像的功能:

  $ objDrawing = new PHPExcel_Worksheet_Drawing(); 
$ objDrawing-> setName('PHPExcel logo');
$ objDrawing-> setDescription('PHPExcel logo');
$ objDrawing-> setPath('./ images / phpexcel_logo.gif'); //图像文件的文件系统引用
$ objDrawing-> setHeight(36);
$ objDrawing-> setCoordinates('D24');
$ objDrawing-> setOffsetX(10);
$ objDrawing-> setWorksheet($ objPHPExcel-> getActiveSheet());

摘录 CodePlex


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 complete plug in my opinion):

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

and

http://www.jqueryscript.net/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="http://i.stack.imgur.com/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="http://i.stack.imgur.com/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="http://i.stack.imgur.com/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="http://i.stack.imgur.com/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="http://i.stack.imgur.com/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?

解决方案

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.

这篇关于导出HTML表格以使文本和图像更好的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆