如何使用office.js api删除excel中表的边框

时间:2016-06-06 20:13:14

标签: office-js office-2016

我使用office api创建了一个表,我不希望它有任何风格。默认情况下,当使用office api创建表时,我看到应用了默认表格样式,我只想要普通数据。

解决方法 我尝试用一​​些颜色来改变边框颜色和范围填充区域,看起来它没有任何风格。

我有两个问题要问。 1.使用office.js apis创建时如何删除excel表上的默认样式 2.如果第一个不可能,那么如何不给范围边界,

我尝试使用细线边框,如https://github.com/OfficeDev/office-js-docs/blob/master/reference/excel/rangeborder.md

中所述

但看起来Hairline不工作,Hairline和Thin给出相同的边框

        Excel.run(function (ctx) { 
        var sheetName = "Sheet1";
        var rangeAddress = "A1:F8";
        var range = ctx.workbook.worksheets.getItem(sheetName).getRange(rangeAddress);
  range.format.borders.getItem('InsideHorizontal').weight = "Hairline";
                range.format.borders.getItem('InsideVertical').weight = "Hairline";
                range.format.borders.getItem('EdgeBottom').weight = "Hairline";
                range.format.borders.getItem('EdgeLeft').weight = "Hairline";
                range.format.borders.getItem('EdgeRight').weight = "Hairline";
                range.format.borders.getItem('EdgeTop').weight = "Hairline";

                //range.format.borders.getItem('InsideHorizontal').style = "No Border";
                //range.format.borders.getItem('InsideVertical').style = 'No Border';
                //range.format.borders.getItem('EdgeBottom').style = 'No Border';
                //range.format.borders.getItem('EdgeLeft').style = 'No Border';
                //range.format.borders.getItem('EdgeRight').style = 'No Border';
                //range.format.borders.getItem('EdgeTop').style = 'No Border';

                range.format.borders.getItem('InsideHorizontal').color = 'Gray';
                range.format.borders.getItem('InsideVertical').color = 'Gray';
                range.format.borders.getItem('EdgeBottom').color = 'Gray';
                range.format.borders.getItem('EdgeLeft').color = 'Gray';
                range.format.borders.getItem('EdgeRight').color = 'Gray';
                range.format.borders.getItem('EdgeTop').color = 'Gray';        return ctx.sync(); 
    }).catch(function(error) {
            console.log("Error: " + error);
            if (error instanceof OfficeExtension.Error) {
                console.log("Debug info: " + JSON.stringify(error.debugInfo));
            }
        });

我的代码与此类似。

请指导我如何从表中删除边框

1 个答案:

答案 0 :(得分:2)

您需要将样式设置为“无”而不是“无边框”。

range.format.borders.getItem('InsideHorizontal').style = "None";
range.format.borders.getItem('InsideVertical').style = 'None';
range.format.borders.getItem('EdgeBottom').style = 'None';
range.format.borders.getItem('EdgeLeft').style = 'None';
range.format.borders.getItem('EdgeRight').style = 'None';
range.format.borders.getItem('EdgeTop').style = 'None';

可能的值记录在RangeBorder object (JavaScript API for Excel)

编辑: 以上仅适用于较新的Excel API。使用经典表绑定时,还有另一种方法。 http://dev.office.com/docs/add-ins/excel/format-tables-in-add-ins-for-excel可以找到这个过程。