前端 导出为Excel 数据源为table表格 并且table中含有图片

图片导出到Excel,图片的路径得调整一下,

<img src="1.jpg" id="img1" />

改为:

<img src="http://localhost:2079/%E6%B5%8B%E8%AF%951/1.jpg" />

这样Excel导出的时候就能包含图片了,但不是完美的解决方案。

导出注意事项:

  • 图片并不是实实在在存入Excel中的,应该仅仅只是存的图片路径
  • 图片的src地址必须是完整的,需要包含http这些,路径是全的
  • wps打开Excel应该有缓存这些图片,所以即使把服务器关闭了,不能访问图片了,wps依然能展示图片

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body>

    <table id="targetTable">
        <thead>
            <tr>
                <td>序号</td>
                <td>图片</td>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>1</td>
                <td>
                    <img src="1.jpg" id="img1" />
                </td>
            </tr>
            <tr>
                <td>2</td>
                <td>
                    <img src="http://localhost:2079/%E6%B5%8B%E8%AF%951/1.jpg" />
                </td>
            </tr>
            <tr>
                <td>3</td>
                <td>
                    <img src="http://localhost:2079/%E6%B5%8B%E8%AF%951/3.jpg" style="width: 200px;" />
                </td>
            </tr>
            <tr>
                <td>4</td>
                <td>
                    <img src="http://183.66.231.18:8084/Content/img/log.png" style="width: 100px;" />
                </td>
            </tr>
        </tbody>
    </table>

    <a id="exportExcel" href="javascript:;">导出Excel</a>
    <input type="button" id="btn1" value="btn1" />

    <script src="//cdn.bootcss.com/jquery/2.2.1/jquery.min.js"></script>
    <script>

        //https://github.com/smileyby/js-table-excel

        /**
        * 将html的table转成Excel的data协议类型数据,不支持ie
        *   table 是HTML DOM Document 对象
        × name 是sheet的名称
        */
        var tableToExcel = (function () {
            var uri = ‘data:application/vnd.ms-excel;base64,‘,
                template = ‘<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40">‘
                    + ‘<head><meta http-equiv="Content-type" content="text/html;charset=UTF-8" /><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/>‘
                    + ‘</x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table>{table}</table></body></html>‘,
                base64 = function (s) {
                    return window.btoa(unescape(encodeURIComponent(s)))
                },
                format = function (s, c) {
                    return s.replace(/{(\w+)}/g, function (m, p) {
                        return c[p];
                    })
                };

            return function (table, name) {
                var ctx = {
                    worksheet: name || ‘Worksheet‘,
                    table: table.innerHTML
                }
                return uri + base64(format(template, ctx));
            }
        })();

        $(function () {
            $(‘#exportExcel‘).on(‘click‘, function () {
                var $this = $(this);
                //设定下载的文件名及后缀
                $this.attr(‘download‘, ‘excelName.xls‘);
                //设定下载内容
                $this.attr(‘href‘, tableToExcel($(‘#targetTable‘)[0], ‘excelName‘));
            });

            function getBase64Image(img) {
                var canvas = document.createElement("canvas");
                canvas.width = img.width;
                canvas.height = img.height;
                var ctx = canvas.getContext("2d");
                ctx.drawImage(img, 0, 0, img.width, img.height);
                var ext = img.src.substring(img.src.lastIndexOf(".") + 1).toLowerCase();
                var dataURL = canvas.toDataURL("image/" + ext);
                return dataURL;
            }

            $("#btn1").click(function () {

                var src = "1.jpg";
                var image = new Image();
                image.src = src;
                image.onload = function () {
                    var base64 = getBase64Image(image);
                    console.log(base64);
                    $("#img1").attr("src", base64);
                }
            });
        });
    </script>

</body>
</html>

原文地址:https://www.cnblogs.com/guxingy/p/12557204.html

时间: 2024-08-03 12:27:14

前端 导出为Excel 数据源为table表格 并且table中含有图片的相关文章

table表格单元格中的内容如何强制换行

table表格单元格中的内容如何强制换行:有时候表格单元格中的内容不会换行,那么这个就会严重影响到用户体验,下面就简单介绍一下如何实现单元格中的内容换行.代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.51texiao.cn/" />

MVC把表格导出到Excel

有关Model: namespace MvcApplication1.Models { public class Coach { public int Id { get; set; } public string Name { get; set; } } } HomeController中,借助GridView控件把内容导出到Excel: using System.Collections.Generic; using System.IO; using System.Linq; using Sys

前端实现table表格导出excel

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> .tb-head{ background-color: #ccc; } </style> <head> <script type="text/javascr

vue+iview中的table表格导出excel表格

一.iveiw框架中table中有exportCsv()方法可以导出.csv后缀文件,类似于excel文件,但是并不是excel文件. 二.实现table表格导出excel文件利用Blob.js 和 Export2Excel.js两个文件实现 1.Blob.js 和 Export2Excel.js文件 链接:https://pan.baidu.com/s/1PvP-NxmONNh71SRDvlL_9A 密码:3h82 2.把Blob.js 和 Export2Excel.js文件添加到src文件夹

前端JS脚本将网页表格导出为Excel

话不多说,上代码! <!DOCTYPE> <html> <head> <title>Excel Test</title> </head> <body> <div style="width:100%;padding:40px;"> Excel Test </div> <table id="excel"> <tr> <td>Na

js操作table表格导出数据到excel方法

js导出excel资料很少,网上也找了很多,基本都不能用,要么只能是IE用,还必须要权限,这是非常不好的.后来到github上找到table2excel.js,虽然可以用,但仍然对IE支持不够,也算不错的东西. 导出的excel文件是xlsx,也可以改为xls打开.注意的是,要对每个table做个标记,加上div框架如代码: <div class="table-responsive table2excel" data-tableName="Test Table 1&qu

前端导出Excel兼容写法

今天整理出在Web前端导出Excel的写法,写了一个工具类,对各个浏览器进行了兼容. 首先,导出的数据来源可能有两种: 1. 页面的HTML内容(一般是table) 2. 纯数据 PS:不同的数据源,导出的写法也是不相同的. 技术方案 IE 无论数据来源是哪里,都是用ActiveXObject对象及相关的命令,IE10.11有点不同. 非IE 纯数据的,使用一个FileSaver.js,如果有浏览器不支持Blob的,还需要引入Blob.js,来做导出. HTML内容的,构造一个base64www

html页面表格导出到excel总结

转载:http://www.cnblogs.com/liuguanghai/archive/2012/12/31/2840262.html <table id="tableExcel" width="100%" border="1" cellspacing="0" cellpadding="0"> <tr> <td colspan="5" align=&qu

JavaScript将网页表格数据导出为Excel文件

不使用服务器端的技术,直接使用js将网页中的表格数据导出为excel文件,支持所有浏览器:前提条件是:网页中的表格数据必须使用table标签排版且不能有任何错误. <!DOCTYPE HTML> <html> <head> <title>javascript exportExcel</title> </head> <body> <table id="name" border="1&quo