我正在编写一个脚本来自定义Google表格中的报告。我有一个由一系列单元格合并而成的标题,我需要将一些文本设置为24磅字体,一些文本设置为合并范围内的18点。我不知道如何开始这样做。到目前为止,这是我的代码。下一步是将'(频率范围从80M到1G)'设置为18磅字体。
function radImmunity() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
sheet.insertSheet('Radiated Immunity'); //Create Rad Imm sheet
var radImm = SpreadsheetApp.getActiveSheet();
radImm.getRange('A1:J4').merge();
radImm.getRange('A1:J4').setWrapStrategy(SpreadsheetApp.WrapStrategy.WRAP);
radImm.getRange('A1').setValue('Radiated Immunity Test (Frequency Range from 80M to 1G)')
radImm.getRange('A1').setHorizontalAlignment("center").setVerticalAlignment("top").setFontSize(24).setFontWeight("bold");
radImm.getRange('A1:J4').setBorder(true, true, true, true, true, true, "black", SpreadsheetApp.BorderStyle.SOLID_MEDIUM);
答案 0 :(得分:0)
您需要的代码段是:
radImm.getRange('A1:J4').setRichTextValue(SpreadsheetApp.newRichTextValue().setText('Radiated Immunity Test\n(Frequency Range from 80M to 1G)').setTextStyle(0, 23, SpreadsheetApp.newTextStyle().setFontSize(24).build()).setTextStyle(23, 55, SpreadsheetApp.newTextStyle().setFontSize(18).build()).build());
不过,我会将其分成几部分,所以看起来像这样:
var fontStyle24 = SpreadsheetApp.newTextStyle().setFontSize(24).setBold(true).build()
var fontStyle18 = SpreadsheetApp.newTextStyle().setFontSize(18).setBold(true).build()
var titleRichText = SpreadsheetApp.newRichTextValue()
.setText('Radiated Immunity Test\n(Frequency Range from 80M to 1G)')
.setTextStyle( 0, 23, fontStyle24)
.setTextStyle(23, 55, fontStyle18)
.build();
radImm.getRange('A1').setRichTextValue(titleRichText)
这里的键是setRichTextValue()
,可让您选择要格式化的字符串。请注意,我还将换行符替换为多个空格。当然,您不必这样做,但是它比依靠自动换行更可靠。
但是,如果我要重构您的整个代码段,它将最终看起来像这样:
function radImmunity() {
// Create the font styles we'll use later
var fontStyle24 = SpreadsheetApp.newTextStyle().setFontSize(24).setBold(true).build()
var fontStyle18 = SpreadsheetApp.newTextStyle().setFontSize(18).setBold(true).build()
var titleRichText = SpreadsheetApp.newRichTextValue()
.setText('Radiated Immunity Test\n(Frequency Range from 80M to 1G)')
.setTextStyle( 0, 23, fontStyle24)
.setTextStyle(23, 55, fontStyle18)
.build();
// Insert a new sheet
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var radImm = sheet.insertSheet('Radiated Immunity'); //Create Rad Imm sheet
// Add and format the title
var titleRange = radImm.getRange('A1:J4')
titleRange.merge();
titleRange.setWrapStrategy(SpreadsheetApp.WrapStrategy.WRAP);
titleRange.setHorizontalAlignment("center").setVerticalAlignment("top")
titleRange.setBorder(true, true, true, true, true, true, "black", SpreadsheetApp.BorderStyle.SOLID_MEDIUM);
titleRange.setRichTextValue(titleRichText)
}
我在这里唯一有意义的建议是不要一遍又一遍地打电话给getRange()
。