【问题标题】:How can I change the "Cell padding" per Script如何更改每个脚本的“单元格填充”
【发布时间】:2017-08-23 01:35:28
【问题描述】:

我创建了一个非常简单的 Google 脚本来将表格添加到 Google 文档中:

var body = DocumentApp.getActiveDocument().getFooter();
body.clear();

var cells = [
['Cell1', 'Cell2', 'Cell3', 'Cell4'],
['Cell5', 'Cell6', 'Cell7', 'Cell8'],
];

var myT = body.appendTable(cells);

var style ={};
style[DocumentApp.Attribute.HORIZONTAL_ALIGNMENT] = DocumentApp.HorizontalAlignment.RIGHT;
style[DocumentApp.Attribute.FONT_FAMILY] = 'Verdana';

myT.setAttributes(style);
myT.setColumnWidth(0, 178.661);
myT.setColumnWidth(1, 106.9681);
myT.setColumnWidth(2, 74.6011);

脚本运行良好。现在我得到了这个问题:

如何更改表格中的“单元格填充”? 如何从定义的字段(例如 col 2 row 2)中获取字体或颜色?

【问题讨论】:

    标签: google-apps-script string-formatting google-docs-api cellpadding


    【解决方案1】:

    我没有找到任何改变“单元格填充”的方法,但这是一个“出路”:

      var body = DocumentApp.getActiveDocument().getFooter();
      body.clear();
    
      var cells = [
      ['', '', '', ''],
      ];
    
      var myT = body.appendTable(cells);
    
      var style ={};
      style[DocumentApp.Attribute.HORIZONTAL_ALIGNMENT] = DocumentApp.HorizontalAlignment.RIGHT;
      style[DocumentApp.Attribute.FONT_FAMILY] = 'Verdana';
      style[DocumentApp.Attribute.FONT_SIZE] = 6;
    
      myT.setAttributes(style);
      myT.setColumnWidth(0, 178.661);
      myT.setColumnWidth(1, 106.9681);
      myT.setColumnWidth(2, 74.6011);  
    
      //Col 1
      myT.getCell(0, 0).clear()
      var txt = myT.getCell(0, 0).editAsText();
      txt.setText("Text1\nText1\nText1");
    
      txt.setBold(0, 45, true);
      txt.setBold(91, 102, true);
      txt.setForegroundColor(150, txt.getText().length-1, '#82E600');
    
      //Col 2
      myT.getCell(0, 1).clear()
      var txt = myT.getCell(0, 1).editAsText();
      txt.setText("Text2\n\nText2\nText2");
    
      txt.setBold(0, 8, true);
      txt.setBold(52, 66, true);  
    
      //Col 3
      myT.getCell(0, 2).clear()
      var txt = myT.getCell(0, 2).editAsText();
      txt.setText("Text3\n\nText3");
    
      txt.setBold(0, 12, true);  
    
      //Col 4
      myT.getCell(0, 3).clear()
      var txt = myT.getCell(0, 3).editAsText();
      txt.setText("Text4\n\nText4");
    
      txt.setBold(0, 11, true);
    }
    

    【讨论】:

      【解决方案2】:

      似乎没有google forum 中提到的单元格填充方法,但是您可以尝试他们建议的解决方法。要更改单元格颜色,有setBackGroundColor,要更改字体颜色,有setFontColor

      【讨论】:

      • 您好,首先感谢您的回答。你有一个非常简单的 Sciptexample 吗?你有一个包含脚本的简单文件吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-20
      相关资源
      最近更新 更多