Google Sheet,两个字体大小一个单元格 [英] Google Sheets, Two Font Sizes One Cell
本文介绍了Google Sheet,两个字体大小一个单元格的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个包含数百行数据的电子表格,这些数据来自数据验证列表。
有些数据高度相关,因此我希望它大一些,有些数据很有用,但对大多数人来说是多余的。
不同的字体大小也可以。如果有人是这方面的专家,不同的颜色和格式将是令人惊叹的
我需要脚本是动态的,即|左边的数据以一种方式格式化,而|右边的数据以另一种方式格式化。
推荐答案
我相信您的目标如下。
- 您希望使用Google Apps脚本(来自您的标记
google-sheets-macros
)修改单元格中文本部分的文本样式。 - 您要修改
NAME NAME | CODE
的CODE
。- 您不想修改
NAME NAME
+|
+ - 您只想修改
CODE
的文本样式。 - 在
Different font size is fine. If anyone is an expert with though, different colours and format would be amazing
中,您希望修改文本的字体大小和前景颜色。在这种情况下,format
您期望的是粗体和斜体吗?
- 您不想修改
- 是否要保留
NAME NAME | CODE
的NAME NAME
的文本样式。
示例情况:
此示例脚本假设NAME NAME | CODE
的值放在&qot;A";列中。因此,为了测试它,请准备好这种情况。
示例脚本:
请将以下脚本复制粘贴到电子表格的容器绑定脚本中,并设置工作表名称。
function myFunction() {
const sheetName = "Sheet1"; // Please set the sheet name.
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName(sheetName);
const range = sheet.getRange("A1:A" + sheet.getLastRow());
const richTextValues = range.getRichTextValues().map(([a]) => {
const text = a.getText();
const pos = text.indexOf("|");
if (pos > -1) {
const temp = a.getTextStyle(0, pos - 1);
const textStyle = SpreadsheetApp.newTextStyle()
.setFontSize(5)
.setForegroundColor("red")
.setItalic(true)
.setBold(true)
.build();
return [
SpreadsheetApp.newRichTextValue()
.setText(text)
.setTextStyle(0, pos - 1, temp)
.setTextStyle(pos + 2, text.length, textStyle)
.build()
];
}
return [SpreadsheetApp.newRichTextValue().setText(text).setTextStyle(a.getTextStyle()).build()];
});
range.setRichTextValues(richTextValues);
}
结果:
当您运行上述脚本时,会重新格式化&A&Quot;列的文本样式,并修改CODE
的文本样式,但不会修改NAME NAME | CODE
的NAME NAME
文本样式。并且不修改不带|
的单元格的文本样式。您可以在下图中看到示例结果。
注意:
- 此示例脚本是一个简单的示例。请根据您的实际情况进行修改。
引用:
添加:
当您想要转换所选范围时,下面的示例脚本如何?使用此脚本时,首先请选择范围并运行此脚本。通过此操作,将转换所选范围。function myFunction() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const select = ss.getSelection();
const sheet = select.getActiveSheet();
const range = select.getActiveRange();
const richTextValues = range.getRichTextValues().map(([a]) => {
const text = a.getText();
const pos = text.indexOf("|");
if (pos > -1) {
const temp = a.getTextStyle(0, pos - 1);
const textStyle = SpreadsheetApp.newTextStyle()
.setFontSize(5)
.setForegroundColor("red")
.setItalic(true)
.setBold(true)
.build();
return [
SpreadsheetApp.newRichTextValue()
.setText(text)
.setTextStyle(0, pos - 1, temp)
.setTextStyle(pos + 2, text.length, textStyle)
.build()
];
}
return [SpreadsheetApp.newRichTextValue().setText(text).setTextStyle(a.getTextStyle()).build()];
});
range.setRichTextValues(richTextValues);
}
如果要将转换后的值放在列的右侧,请按如下所示修改上面的脚本。
发件人
range.setRichTextValues(richTextValues);
至
range.offset(0, 1).setRichTextValues(richTextValues);
这篇关于Google Sheet,两个字体大小一个单元格的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文