我正在寻找一种从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,..."
答案 0 :(得分:0)
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用户可以在图像服务器关闭或图像“过期”时以低成本重建图形。
我希望这有帮助!