使用GAS在flextable中对齐按钮文本和间距

时间:2014-07-23 08:20:17

标签: css google-apps-script

在flextable中,我在第一列中创建带有按钮的行,显示每行的编号,以及其他列中的文本框。 我想将行之间的空间减少到最小。

var btnField = app.createButton(numRow).setId(fieldId).setSize(20, 20)
  .setStyleAttribute('marginBottom', 3).setStyleAttribute('marginTop', 0)
  .setStyleAttribute('fontSize', 8).setText(numRow)); 

flextable.setCellSpacing(1).setCellPadding(1); //Minimum distance between rows ??

关于按钮的问题是文本不垂直位于按钮的中间。我不能减小按钮的大小(使用.setSize(20, 18)左右),因为文本将变为底部按钮之外。

我应该使用哪些样式属性来垂直定位按钮中间的按钮文本,右边是一个小的marginRight?按钮本身不应超过文本框的大小,以尽量减少行之间的距离。

如果我必须在flextable上使用设置,那当然也没关系。

1 个答案:

答案 0 :(得分:0)

样式属性应该使用camelCase编写,使用fontSize而不是fontsize,你会得到这个:

enter image description here

很好地居中。


编辑:我对按钮文本对齐进行了一些测试,结果有点令人惊讶...... 下面的代码和插图显示只有水平对齐在文本内容上是可行的,并且paddingTop适用但是对其他小部件也有副作用

function doGet() {
  var app = UiApp.createApplication().setTitle('test buttons');
  var btn1 = app.createButton('test Button1').setPixelSize(200,60).setStyleAttributes({'fontFamily': 'serif','fontWeight': 'bold','fontSize':'14pt','text-align':'right'});
  var btn2 = app.createButton('test Button2').setPixelSize(200,30).setStyleAttributes({'fontSize':'12pt','textAlign':'left'});
  var btn3 = app.createButton('test Button3').setPixelSize(200,16).setStyleAttributes({'fontSize':'8pt','padding':'0px'});
  var btn4 = app.createButton('test Button4').setPixelSize(200,60).setStyleAttributes({'fontSize':'8pt','paddingTop':'30px'});
  app.add(btn1).add(btn2).add(btn3).add(btn4);
  return app;
}

enter image description here

组合od填充和verticalAlignment可以给出有趣的结果,见下文:

  var btn4 = app.createButton('testButton4').setPixelSize(200,60).setStyleAttributes({'fontSize':'8pt','paddingTop':'30px','vertical-align':'-11px'});

enter image description here