美文网首页
基于FileSaver.js和wordexport.js将页面内

基于FileSaver.js和wordexport.js将页面内

作者: kaiker | 来源:发表于2020-04-28 15:20 被阅读0次

    1 下载

    FileSaver.js https://github.com/eligrey/FileSaver.js
    wordexport.js https://jquery.com/download/

    2 设置一个导入按钮

    <div id='detail'>xxx</div>
    <h2><a class="word-export" href=""> 结果输出 </a></h2>
    

    3 script语句

    <script src="'js/FileSaver.js"></script>
    <script src="js/jquery.wordexport.js"></script>
    <script type="text/javascript">
        jQuery(document).ready(function($) {
            $("a.word-export").click(function(event) {
                $("#detail").wordExport("关联分析结果");
                });
        });
    </script>
    

    至此就可以导出id为detail的div块中的内容为word文档了。

    4 echarts图像处理

    如果页面中有echarts图像,直接导出div块无法显示图片,需要以下几个操作才能在word文档里展示图片

    4.1 设置不可见img标签

    需要在echarts绑定的div块下加一个不可见的img标签

    <div class="video_wrapper">
        <div id="relation_change" style="height:500px;">
        </div>
    </div>
    <img src="" id="relation_change_pic" style="display:none;"/>
    

    4.2 允许页面通过ajax post内容

    <script>
            $.ajaxSetup({
                data:{csrfmiddlewaretoken:'{{ csrf_token }}'}
            })
    </script>
    

    4.3 将Echarts图像的动画效果取消

    在option里加入animation:false,即可

    4.4 调用Echarts方法生成图像,并通过ajax绑定到不可见img标签

    在echarts生成的script代码块中插入这段内容

    var picInfo = myChart.getDataURL();//获取柱状图的base64
    echartImg(picInfo,"relation_change_pic","relation_change");  //替换成图片
    function echartImg(baseimg,img,div){
        $.ajax({
            type:"POST",
            url: "/toimg/",
            data:{'base64Info':baseimg},
            success:function(data){
                 data = JSON.parse(data);
                 if(data["code"]==1){
                       $('#'+img).attr('src', data["src"]);
                 }
         }
    })}
    

    后端的代码如下

    def toimg(request):
        src = request.POST.get('base64Info')
        status = 1
        # print(src)
        return HttpResponse(json.dumps({
            "code": status,
            "src": src
        }))
    

    这样就可以导出echarts的图像了。

    相关文章

      网友评论

          本文标题:基于FileSaver.js和wordexport.js将页面内

          本文链接:https://www.haomeiwen.com/subject/wlgvwhtx.html