gpt4 book ai didi

javascript - 如何在 Google 文档脚本中加粗一行?

转载 作者:行者123 更新时间:2023-11-29 21:54:31 27 4
gpt4 key购买 nike

我正在编写一个脚本来解析 Google 表格并在 Doc 上很好地格式化单元格。我希望第 1 列的单元格数据始终为粗体,而第 6 列的单元格数据始终为斜体。问题是,在将段落附加到文档正文之后,属性更改将应用​​于整个文档。有没有办法在将单元格数据附加到文档正文之前将其加粗/斜体化?

function readRows() {
var sheet = SpreadsheetApp.getActiveSheet();
var rows = sheet.getDataRange();
var numRows = rows.getNumRows();
var numCols = rows.getNumColumns();
var values = rows.getValues();

var doc = DocumentApp.create("Smogon Formatted");
var docBody = doc.getBody();

for (var i = 2; i <= numRows; i++) {

for (var j = 1; j <= numCols; j++){

var cellData = rows.getCell(i, j).getValue()

// Format data based on column
if (j == 1) {
docBody.appendParagraph(cellData).editAsText().setBold(true);
} else if (j == 2 || j == 3) {
var imgFormula = rows.getCell(i, j).getFormula();
var imgUrl = getImageUrl(imgFormula);
docBody.appendParagraph("[img]" + imgUrl + "[/img]");
} else if (j == 6) {
docBody.appendParagraph(cellData).editAsText().setItalic(true);
} else {
docBody.appendParagraph(cellData);
}
}
}
};

编辑:尝试#2,使用 setAttributes 方法

function readRows() {
var sheet = SpreadsheetApp.getActiveSheet();
var rows = sheet.getDataRange();
var numRows = rows.getNumRows();
var numCols = rows.getNumColumns();
var values = rows.getValues();

var doc = DocumentApp.create("Smogon Formatted");
var docBody = doc.getBody();

for (var i = 2; i <= numRows; i++) {

for (var j = 1; j <= numCols; j++){

var cellData = rows.getCell(i, j).getValue()

// Format data based on column
if (j == 1) {
docBody.appendParagraph(cellData).setAttributes(style1);
} else if (j == 2 || j == 3) {
var imgFormula = rows.getCell(i, j).getFormula();
var imgUrl = getImageUrl(imgFormula);
docBody.appendParagraph("[img]" + imgUrl + "[/img]");
} else if (j == 6) {
docBody.appendParagraph(cellData).setAttributes(style2);
} else {
docBody.appendParagraph(cellData);
}
}
}
};

// Style definitions as global variables
var style1= {};
style1[DocumentApp.Attribute.BOLD] = true;
var style2= {};
style2[DocumentApp.Attribute.ITALIC] = true;

最佳答案

如果您使用样式属性,您可以非常轻松地为每个段落指定样式,实际上您可以为任何文档元素执行此操作...

这是一个基本的示例代码来展示它是如何工作的:
( doc here )

function exportToDoc(){
var doc = DocumentApp.openById('16i----L53WTDpzuLyhqQQ_E');// or create a new doc (but not while you test it :-)
var body = doc.getBody();
var sheet = SpreadsheetApp.getActiveSheet();
var values = sheet.getDataRange().getValues();
for (var i in values){
var rowData = values[i].join(' + ');
if (i == 1) {
body.appendParagraph(rowData).setAttributes(style2);
} else if (i == 2 ) {
body.appendParagraph(rowData).setAttributes(style1)
}
}
doc.saveAndClose();
}

// Style definitions as global variables
var style1 = {};// style example 1
style1[DocumentApp.Attribute.FONT_SIZE] = 10;
style1[DocumentApp.Attribute.FONT_FAMILY] = DocumentApp.FontFamily.CONSOLAS;
style1[DocumentApp.Attribute.FOREGROUND_COLOR] = "#444400";
var style2 = {};// style example 2
style2[DocumentApp.Attribute.FONT_SIZE] = 16;
style2[DocumentApp.Attribute.FONT_FAMILY] =DocumentApp.FontFamily.ARIAL_NARROW;
style2[DocumentApp.Attribute.FOREGROUND_COLOR] = "#005500";
//

示例随机数据结果:

enter image description here

关于javascript - 如何在 Google 文档脚本中加粗一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27158212/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com