des*_*931 0 google-sheets google-apps-script
我有一个在单元格中格式化文本的谷歌工作表。一些文本有颜色并且是粗体的。我使用谷歌脚本在单元格中添加新内容。当我运行脚本时,会添加新内容,但会删除旧内容的格式。
1)如何在执行我的脚本时保持旧内容的格式。2)我想让新内容加粗和着色。如何格式化添加到单元格的新内容?
这是执行脚本之前我的单元格的内容
这是我的脚本:
function CreateIssue() {
var spreadsheet = SpreadsheetApp.getActive();
var cell = spreadsheet.getCurrentCell();
var oldContent = cell.getValue();
var newContent ='Group:\n\nDescription:\n\nExpected Results:\n\nActual Results:\n\nTest
Results:\n\nTest Data:';
var space = " ";
cell.setValue(newContent + space + oldContent);
Run Code Online (Sandbox Code Playgroud)
这是执行脚本后我的单元格的内容
如您所见,旧内容的格式已清除。
如果我的理解是正确的,这个答案怎么样?请将此视为几种可能的答案之一。
当使用值放置时 setValue,似乎清除了文本样式。这可能是规范。所以在这种情况下,为了设置文本样式,我使用了 Class TextStyleBuilder 和 Class RichTextValueBuilder。这个修改后的脚本的流程如下。
newContent和space。oldContent.当你的脚本被修改时,它变成如下。请选择一个包含oldContent并运行脚本的单元格。这样,newContent和space被添加到oldContent,并设置文本样式。
function CreateIssue() {
var spreadsheet = SpreadsheetApp.getActive();
var cell = spreadsheet.getCurrentCell();
var oldContent = cell.getValue();
var newContent = 'Group:\n\nDescription:\n\nExpected Results:\n\nActual Results:\n\nTest Results:\n\nTest Data:';
var space = " ";
// I added below script.
var newStyles = [{
start: 0,
end: newContent.length,
style: SpreadsheetApp.newTextStyle().setBold(true).setForegroundColor("green").build()
}];
var richTextValue = cell.getRichTextValue();
var offset = newContent.length + space.length;
var oldContent = richTextValue.getText();
if (oldContent.length > 0) {
richTextValue.getRuns().forEach(function(e) {
newStyles.push({
start: offset + e.getStartIndex(),
end: offset + e.getEndIndex(),
style: e.getTextStyle()
});
});
}
var richText = SpreadsheetApp.newRichTextValue().setText(newContent + space + oldContent);
newStyles.forEach(function(e) {richText.setTextStyle(e.start, e.end, e.style)});
cell.setRichTextValue(richText.build());
}
Run Code Online (Sandbox Code Playgroud)
当var newContent = "foo";设置并选择一个包含“bar”的文本样式的单元格并运行上述脚本时,可以得到以下结果。
保留原始文本样式,附加文本具有文本样式。
如果我误解了您的问题并且这不是您想要的方向,我深表歉意。
| 归档时间: |
|
| 查看次数: |
1931 次 |
| 最近记录: |