一只超 2020-02-02 16:19 采纳率: 0%
浏览 703

前端导出Word文档中线框异常问题

导出时候像页面一样线框,Word导出却又间隙,间隙我已经设置了,但还是有空隙,或者有什么方法可以设置和网页上一样的显示
图片说明
图片说明

//word表格配置
function export2Word(element){
    var html, link, blob, url, css;

    css = (
        '<style>' +
        '@page WordSection1{size: 841.95pt 595.35pt;mso-page-orientation: landscape;}' +
        'div.WordSection1 {page: WordSection1;}' +
        '</style>' +
            '      <div id="TestDiv">\n' +
        '\n' +
        '          <div align="center" style="font-size: 30px;"><b>全网接地情况表</b></div>\n' +
        '\n' +
        '        \n' +
        '\n' +
        '         <table width="100%">'
    );
    html = element.innerHTML;
    blob = new Blob(['\ufeff', css + html], {
        type: 'application/msword'
    });
    url = URL.createObjectURL(blob);
    link = document.createElement('A');
    link.href = url;
    link.download = '全网接地情况表';  // default name without extension
    document.body.appendChild(link);
    if (navigator.msSaveOrOpenBlob ) navigator.msSaveOrOpenBlob( blob, '全网接地情况表.doc'); // IE10-11
    else link.click();  // other browsers
    document.body.removeChild(link);
}

window.onload = function () {
    var exportWordBtn = document.getElementById('exportWord');
    exportWordBtn.onclick=function(){
        // 构建table表格
        var table_ = document.createElement("table");
        var t,d;//创建标题栏
        for (var s=0;s<1;s++){
            t = table_.insertRow(table_.rows.length);
            const keys =['序号','区域名称','电压等级','厂站','故障设备','故障发生时间','故障恢复时间','故障原因'];
            // keys font-weight: 700;
            for (var s2=0;s2<8;s2++){
                d = t.insertCell(t.cells.length)
                d.style.borderStyle = 'solid';
                d.style.borderWidth = '0px';
                d.style.borderColor = 'black';
                d.style.borderStyle = 'bold';
                // d.style.fontSize="15px"
                d.innerHTML = keys[s2];
            }
        }
        // table_.style.borderWidth = '0px';
        // table_.style.borderColor = 'black';
        // table_.style.borderStyle = 'solid';
        // table_.style.border = '0px solid #000';
        var tr,td;//创建单元格
        for(var i=0;i<tableData.length;i++){
            //循环插入元素
            tr = table_.insertRow(table_.rows.length);//创建一行
            tr.style.borderWidth = '0px';
            tr.style.borderColor = 'black';
            tr.style.borderStyle = 'solid';
            const keys = ['number','area','voltage','stationName','deviceName','logStartTime','logEndTime','troubleResult'];
            for(var j=0;j<8;j++){
                td = tr.insertCell(tr.cells.length);//创建单元格
                td.style.borderWidth = '0px';
                td.style.borderColor = 'black';
                td.style.borderStyle = 'solid';
                if (j!=null && j===2){//帮数据库查到的电压等级转换加KV
                        td.innerHTML = tableData[i][keys[j]] / 1000 +'KV';
                }else {
                    td.innerHTML = tableData[i][keys[j]];
                }
            }
        }
        //将table表格append到#docx .WordSection1 中
        document.querySelector("#docx .WordSection1").appendChild(table_);
        var docx = document.getElementById('docx');
        //调用export2word函数
        export2Word(docx);
        //调用完成后将生成的表格remove掉
        document.querySelector("#docx .WordSection1").removeChild(table_);
    }
}
  • 写回答

1条回答 默认 最新

  • 关注
    评论

报告相同问题?

悬赏问题

  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况