【问题标题】:How do I export a base64 image to excel?如何将base64图像导出到excel?
【发布时间】:2018-03-01 08:09:17
【问题描述】:

我正在寻找一种在 Angularjs 中从 NVd3 导出 Excel 图表的方法。

我正在尝试这样的代码 (jsfiddle)

<button id="myButtonControlID">Export Table data into Excel</button>
<div id="divTableDataHolder">
    <table>
        <tbody>
            <tr>
                <td><img src='http://codepattern.net/Blog/pics/CodepatternLogoN.png' alt=''/></td>
            </tr>
            <tr>
                <td><img id="img" src='' alt=''/></td>
            </tr>
        </tbody>
    </table>
</div>
$("[id$=myButtonControlID]").click(function(e) {
    window.open('data:application/vnd.ms-excel,' + encodeURIComponent( $('div[id$=divTableDataHolder]').html()));
    e.preventDefault();
});
document.getElementById("img").src ="data:image/png;base64,..."

【问题讨论】:

  • 您确定要将图像放入 excel 文件中吗?这似乎是对规范的错误解释。
  • 是的,我的意图是将 nvd3 图形放入 excel 中,但我没有确切的解决方案,所以我尝试将 svg 格式数据转换为 base64 类型的图像并尝试将图像放入excel。如果您有任何想法,请与我分享(将 svg 导出到 excel)。
  • 我还需要这个问题的答案,因为我希望使用 javascript 或 jquery 将我的 base64 图像导出到 excel 中。有人可以帮忙吗?
  • 如果您使用的是office 365(有订阅),您可以从网站下载后直接导入svg。如果您使用的是旧版本,您可以随时将图像导出为 png,然后将其读入 excel

标签: javascript jquery angularjs svg


【解决方案1】:

Excel 似乎不喜欢 base64 编码的图像...

尝试简单地使用当前失败图像的 PNG base64 编码数据向您的服务器发出 ajax POST 请求,进入存储图像并为其提供托管的服务,一些示例 php 代码(我假设您可以访问一个可以运行php的linux服务器):

<?php
$somecode = unique_name(); //left as excersise for the reader.

move_uploaded_file($_FILES["filename"]["tmp_name"],"destination_$somecode.png");
//also, check for errors.
echo $somecode;

然后只需使用服务器的响应作为 excel 文件中的 URL。 这样您就可以将 链接 嵌入到图像而不是图像本身。

所以单元格内容可以类似于:

<td><img src='yourhost.com/your_image_location' /></td>

较小的 excel 文件应该让人开心,但是 您必须考虑文件将在那里保存多长时间之类的事情 考虑包括用于生成表单的实际数据,以便未来的 excel 用户可以在图像服务器出现故障或图像“过期”时廉价地重建图形。

我希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2016-07-19
    • 2017-10-11
    • 2018-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多