Google 应用脚本:从 getAttributes 获取 NULL 值
Google App Script: Getting NULL values from getAttributes
我想从 google 文档中获取所有属性,例如(BOLD、UNDERLINE、FOREGROUND_COLOR、FONT_SIZE 等)。但是我在使用 getAttributes 时得到 NULL 值。
以下是我的代码。
var fields = doc.getNamedRanges("myFields");
var lastFontColor;
for(var i = 0; i < fields.length; i++)
{
var rangeElement = fields[i].getRange().getRangeElements()[0];
var obj= rangeElement.getElement().asText().editAsText();
var element= rangeElement.getElement().asText();
var atts = obj.getAttributes();
for (var att in atts)
{
Logger.log("value of " + att + ":" + atts[att]);
}
}
我得到的输出:-
FONT_SIZE: null
ITALIC: null
STRIKETHROUGH: null
FOREGROUND_COLOR: #0000ff
\ fore colors comes for some of elements.
BOLD: null
请告诉我是否有任何其他方法可以做到这一点。
不幸的是,这是 Google 文档中反复出现的问题。某些样式属性 return 'null' 除非在代码中明确设置。
例如,执行以下 document-bound 脚本后,我得到 FONT_SIZE、FONT_FAMILY 和其他一些属性的 'null' 值,而 PAGE_MARGIN和 PAGE_WIDTH 显示正确的值:
var doc = DocumentApp.getActiveDocument();
var body = doc.getBody();
var styles = body.getAttributes();
Logger.log(styles);
但是,如果您在脚本中明确设置这些属性,记录 body.getAttributes() 的输出将 return 这些新值
var styles = {};
styles[DocumentApp.Attribute.FONT_FAMILY] = "Times New Roman";
styles[DocumentApp.Attribute.FONT_SIZE] = 16;
body.setAttributes(styles);
我想从 google 文档中获取所有属性,例如(BOLD、UNDERLINE、FOREGROUND_COLOR、FONT_SIZE 等)。但是我在使用 getAttributes 时得到 NULL 值。 以下是我的代码。
var fields = doc.getNamedRanges("myFields");
var lastFontColor;
for(var i = 0; i < fields.length; i++)
{
var rangeElement = fields[i].getRange().getRangeElements()[0];
var obj= rangeElement.getElement().asText().editAsText();
var element= rangeElement.getElement().asText();
var atts = obj.getAttributes();
for (var att in atts)
{
Logger.log("value of " + att + ":" + atts[att]);
}
}
我得到的输出:-
FONT_SIZE:
null
ITALIC:null
STRIKETHROUGH:null
FOREGROUND_COLOR:#0000ff
\ fore colors comes for some of elements.
BOLD:null
请告诉我是否有任何其他方法可以做到这一点。
不幸的是,这是 Google 文档中反复出现的问题。某些样式属性 return 'null' 除非在代码中明确设置。
例如,执行以下 document-bound 脚本后,我得到 FONT_SIZE、FONT_FAMILY 和其他一些属性的 'null' 值,而 PAGE_MARGIN和 PAGE_WIDTH 显示正确的值:
var doc = DocumentApp.getActiveDocument();
var body = doc.getBody();
var styles = body.getAttributes();
Logger.log(styles);
但是,如果您在脚本中明确设置这些属性,记录 body.getAttributes() 的输出将 return 这些新值
var styles = {};
styles[DocumentApp.Attribute.FONT_FAMILY] = "Times New Roman";
styles[DocumentApp.Attribute.FONT_SIZE] = 16;
body.setAttributes(styles);