HTML导出WORD

1.引入FileSaver.js文件

var saveAs = saveAs || (function(view) {
        "use strict";
        if (typeof view === "undefined" || typeof navigator !== "undefined" && /MSIE [1-9]\./.test(navigator.userAgent)) {
            return;
        }
        var doc = view.document
            , get_URL = function() {
                return view.URL || view.webkitURL || view;
            }
            , save_link = doc.createElementNS("http://www.w3.org/1999/xhtml", "a")
            , can_use_save_link = "download" in save_link
            , click = function(node) {
                var event = new MouseEvent("click");
                node.dispatchEvent(event);
            }
            , is_safari = /constructor/i.test(view.HTMLElement)
            , is_chrome_ios =/CriOS\/[\d]+/.test(navigator.userAgent)
            , throw_outside = function(ex) {
                (view.setImmediate || view.setTimeout)(function() {
                    throw ex;
                }, 0);
            }
            , force_saveable_type = "application/octet-stream"
            , arbitrary_revoke_timeout = 1000 * 40 // in ms
            , revoke = function(file) {
                var revoker = function() {
                    if (typeof file === "string") { // file is an object URL
                        get_URL().revokeObjectURL(file);
                    } else { // file is a File
                        file.remove();
                    }
                };
                setTimeout(revoker, arbitrary_revoke_timeout);
            }
            , dispatch = function(filesaver, event_types, event) {
                event_types = [].concat(event_types);
                var i = event_types.length;
                while (i--) {
                    var listener = filesaver["on" + event_types[i]];
                    if (typeof listener === "function") {
                        try {
                            listener.call(filesaver, event || filesaver);
                        } catch (ex) {
                            throw_outside(ex);
                        }
                    }
                }
            }
            , auto_bom = function(blob) {
                if (/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(blob.type)) {
                    return new Blob([String.fromCharCode(0xFEFF), blob], {type: blob.type});
                }
                return blob;
            }
            , FileSaver = function(blob, name, no_auto_bom) {
                if (!no_auto_bom) {
                    blob = auto_bom(blob);
                }
                var filesaver = this
                    , type = blob.type
                    , force = type === force_saveable_type
                    , object_url
                    , dispatch_all = function() {
                        dispatch(filesaver, "writestart progress write writeend".split(" "));
                    }
                    , fs_error = function() {
                        if ((is_chrome_ios || (force && is_safari)) && view.FileReader) {
                            var reader = new FileReader();
                            reader.onloadend = function() {
                                var url = is_chrome_ios ? reader.result : reader.result.replace(/^data:[^;]*;/, 'data:attachment/file;');
                                var popup = view.open(url, '_blank');
                                if(!popup) view.location.href = url;
                                filesaver.readyState = filesaver.DONE;
                                dispatch_all();
                            };
                            reader.readAsDataURL(blob);
                            filesaver.readyState = filesaver.INIT;
                            return;
                        }
                        if (!object_url) {
                            object_url = get_URL().createObjectURL(blob);
                        }
                        if (force) {
                            view.location.href = object_url;
                        } else {
                            var opened = view.open(object_url, "_blank");
                            if (!opened) {
                                view.location.href = object_url;
                            }
                        }
                        filesaver.readyState = filesaver.DONE;
                        dispatch_all();
                        revoke(object_url);
                    };
                filesaver.readyState = filesaver.INIT;

                if (can_use_save_link) {
                    object_url = get_URL().createObjectURL(blob);
                    setTimeout(function() {
                        save_link.href = object_url;
                        save_link.download = name;
                        click(save_link);
                        dispatch_all();
                        revoke(object_url);
                        filesaver.readyState = filesaver.DONE;
                    });
                    return;
                }
                fs_error();
            }
            , FS_proto = FileSaver.prototype
            , saveAs = function(blob, name, no_auto_bom) {
                return new FileSaver(blob, name || blob.name || "download", no_auto_bom);
            };
        if (typeof navigator !== "undefined" && navigator.msSaveOrOpenBlob) {
            return function(blob, name, no_auto_bom) {
                name = name || blob.name || "download";

                if (!no_auto_bom) {
                    blob = auto_bom(blob);
                }
                return navigator.msSaveOrOpenBlob(blob, name);
            };
        }
        FS_proto.abort = function(){};
        FS_proto.readyState = FS_proto.INIT = 0;
        FS_proto.WRITING = 1;
        FS_proto.DONE = 2;
        FS_proto.error =
        FS_proto.onwritestart =
        FS_proto.onprogress =
        FS_proto.onwrite =
        FS_proto.onabort =
        FS_proto.onerror =
        FS_proto.onwriteend =
        null;
        return saveAs;
    }(
        typeof self !== "undefined" && self
        || typeof window !== "undefined" && window
        || this.content
    ));
if (typeof module !== "undefined" && module.exports) {
    module.exports.saveAs = saveAs;
} else if ((typeof define !== "undefined" && define !== null) && (define.amd !== null)) {
    define([], function() {
        return saveAs;
    });
}

2.引入jquery.wordexport.js文件

if (typeof jQuery !== "undefined" && typeof saveAs !== "undefined") {
    (function($) {
        $.fn.wordExport = function(fileName) {
            fileName = typeof fileName !== 'undefined' ? fileName : "jQuery-Word-Export";
            var static = {
                mhtml: {
                    top: "Mime-Version: 1.0\nContent-Base: " + location.href + "\nContent-Type: Multipart/related; boundary=\"NEXT.ITEM-BOUNDARY\";type=\"text/html\"\n\n--NEXT.ITEM-BOUNDARY\nContent-Type: text/html; charset=\"utf-8\"\nContent-Location: " + location.href + "\n\n\n\n_html_",
                    head: "\n\n\n\n",
                    body: "_body_"
                }
            };
            var options = {
                maxWidth: 624
            };
            var markup = $(this).clone();
            markup.each(function() {
                var self = $(this);
                if (self.is(':hidden'))
                    self.remove();
            });
            var images = Array();
            var img = markup.find('img');
            for (var i = 0; i < img.length; i++) {
                var w = Math.min(img[i].width, options.maxWidth);
                var h = img[i].height * (w / img[i].width);
                var canvas = document.createElement("CANVAS");
                canvas.width = w;
                canvas.height = h;
                var context = canvas.getContext('2d');
                context.drawImage(img[i], 0, 0, w, h);
                var uri = canvas.toDataURL("image/png/jpg");
                $(img[i]).attr("src", img[i].src);
                img[i].width = w;
                img[i].height = h;
                images[i] = {
                    type: uri.substring(uri.indexOf(":") + 1, uri.indexOf(";")),
                    encoding: uri.substring(uri.indexOf(";") + 1, uri.indexOf(",")),
                    location: $(img[i]).attr("src"),
                    data: uri.substring(uri.indexOf(",") + 1)
                };
            }
            var mhtmlBottom = "\n";
            for (var i = 0; i < images.length; i++) {
                mhtmlBottom += "--NEXT.ITEM-BOUNDARY\n";
                mhtmlBottom += "Content-Location: " + images[i].location + "\n";
                mhtmlBottom += "Content-Type: " + images[i].type + "\n";
                mhtmlBottom += "Content-Transfer-Encoding: " + images[i].encoding + "\n\n";
                mhtmlBottom += images[i].data + "\n\n";
            }
            mhtmlBottom += "--NEXT.ITEM-BOUNDARY--";

            var styles="";
            var fileContent = static.mhtml.top.replace("_html_", static.mhtml.head.replace("_styles_", styles) +         static.mhtml.body.replace("_body_", markup.html())) + mhtmlBottom;
            var blob = new Blob([fileContent], {
                type: "application/msword;charset=utf-8"
            });
            saveAs(blob, fileName + ".doc");
        };
    })(jQuery);
} else {
    if (typeof jQuery === "undefined") {
        console.error("jQuery Word Export: missing dependency (jQuery)");
    }
    if (typeof saveAs === "undefined") {
        console.error("jQuery Word Export: missing dependency (FileSaver.js)");
    }
}

3.最后一步导出WORD




    



潍坊市潍城区人民政府城关街道办事处

固定资产及无形资产清查报告 按照潍坊市潍城区人民政府城关街道办事处(以下简称“单位”或“贵单位”)要求,以2021年11月31日为固定资产及无形资产清查基准日,山东锐查信息科技有限公司对贵单位的固定资产及无形资产进行了实地清查,分别调整了行政事业单位国有资产管理平台以及协助单位重建固定资产及无形资产台账,截至2021年12月17日,固定资产及无形资产清查工作已经结束,本次清查情况如下: 一、基本情况 本次清查自2021年12月08日起,由专业清查机构“山东锐查信息科技有限公司”进行清查,截至2021年12月17日,已全部完成清查工作。 1.清查内容主要包括房屋、车辆、通用设备、专用设备、办公家具及无形资产等。清查主要采取账面核对和实地盘点相结合的方法,逐一对每个部门单位、每个房间进行核对登记,并根据实际使用情况确定是否为账实相符资产,确保资产管理系统内每一件资产都能落实到具体的使用部门、使用人和存放地点,且与实物资产情况能够一一对应,实现资产全生命周期的随时跟踪和管理,有效解决国有资产实物管理中长期存在的工作量大,管理繁琐、账实不符等问题,保障国有资产的安全完整,提高国有资产使用效率。 2.清查开展详情: (1)确定资产清查基准日,以单位实际时间节点的前一个月末为基准日,即2021年11月31日为清查基准日。 (2)整理对账依据:了解单位基本情况,整理对账依据时按照单位提供的固定资产及无形资产明细账,逐年整理,确保对账依据完整准确。 (3)清查盘点:地毯式对每个房间的资产依次进行清点,房间内每一条资产的使用部门、存放地点、使用人、使用状况、资产私有属性(品牌、型号和出厂日期等)以及是否为本单位资产状况进行详细记录,并核实。 (4)核对账务:按照先近后远,近几年不可能存在盘亏资产的原则,将整理出来的对账依据与盘点后的资产相核对,以品牌、型号、出厂日期与资产价值及购入日期为依据,条条对应,整理出账实相符、盘盈、盘亏等资产信息。 (三)资产盘盈盘亏原因: (1)盘亏原因:盘亏资产大多数是由于资产年代久远,资产损毁,以及一些易损易耗品,导致盘亏资产现象; (2)盘盈原因:以前资产管理不规范,有些资产可能未入固定资产及无形资产科目,或者成批录入,但是盘点时是以单个记录,导致盘盈现象。 四、工作建议 1、健全制度、协同配合、落实责任 一是进一步健全资产管理制度,将资产管理责任落实到个人,充分发挥部门内部资产管理员的管理监督作用,做到人人都管物,物物有人管。二是规划部门之间协同配合,人员调动、资产流转都严格按照相应的管理制度和流程进行办理,定期查询、汇总、分析单位资产的购置、使用、变动、处置情况。三是及时与相关部门进行账务核对,从资产的入口到资产的出口做到资产的全生命周期动态管理,杜绝资产闲置、浪费和流失。这对于进一步理顺和巩固资产管理体制;明晰产权主体、理顺产权关系、强化产权意识;丰富资产管理手段、实现国有资产安全完整和保值增值;夯实管理基础、提高管理水平具有重要的意义。四是建议建立完善整个单位内部管理制度,搭建内部控制系统平台。 2、严控资产“入口关” 资产配置是行政事业单位资产形成的起点,单位应当严控资产配置“入口关”。配置资产应当以单位履行职能和促进事业发展需要为基础,以资产功能与单位职能相匹配为基本条件,不得配置与单位履行职能无关的资产。严格执行资产购置预算管理相关规定,将资产配置管理职能嵌入到预算管理流程中,为预算编制提供准确、细化、动态的资产信息。 3、科学制定资产配置标准 资产配置标准是科学合理编制资产配置预算的重要依据,对已制定资产配置标准的,行政事业单位应当结合财力情况严格按照标准配置;对没有规定资产配置标准的,应当坚持厉行节约、从严控制的原则,并结合单位履职需要、存量资产状况和财力情况等,在充分论证的基础上,采取调剂、租赁、购置等方式进行配置。 4、及时核销盘亏资产 在清查过程中发现各部门使用的固定资产及无形资产因报废、损坏、丢失等原因,需要处置的资产未及时报送至财务进行账务处理,待报废及盘亏资产积少成多,导致信息系统内账实不符。同时根据财政部门资产配置标准,待报废及盘亏资产过多会影响单位申请新资产的审批,单位应按资产处置规定,及时核销待报废及盘亏资产。 另外,通过本次清查,发现部分盘盈资产,应尽快采用适当方式确定这部分盘盈资产价值并入账。 单位盖章: 单位负责人签字: 2022年08月11日

你可能感兴趣的:(HTML,html,safari,javascript)