3

ラベルテキストを壊すトリックはありますか?'\ n''\ r''\ n\r'が機能しないため。どうもありがとう

4

4 に答える 4

2

これらの2 つのパラメーターを使用すると、やりたいことができますね。

app.createLabel(text).setWidth(width).setWordWrap(true)

ここに例があります(他のウィジェットの中でも;-):

function showurl() {
  var app = UiApp.createApplication();
  app.setTitle("Anchor in a popup ;-)");
  var panel = app.createFlowPanel()
  var image = app.createImage('https://sites.google.com/site/appsscriptexperiments/home/photo.jpg').setPixelSize(50, 50)
  var link = app.createAnchor('This is your link', 'https://sites.google.com/site/appsscriptexperiments/home');
  var lab = app.createLabel("wrap it because it's too narrow").setWidth(90).setWordWrap(true);
  var quit = app.createButton('quit');
  panel.add(image).add(link).add(lab).add(quit);
  app.add(panel);
   var doc = SpreadsheetApp.getActive();
  doc.show(app);
}

編集:トーストメッセージの改行についての古い投稿(Googleグループフォーラムで、Henriqueに感謝します;-)を見つけました。その場合に使用したコードは次のとおりです...原則はラベルでも機能するはずですが、私はしませんでした試してみてください。これを使用するには、テキストを含む変数で \n (改行したい場所) を使用し、この関数に渡します。(説明するスクリプトにいくつかのコメントがあります)

function break_(msg){
var temp = escape(msg);// shows codes of all chars
msg = unescape(temp.replace(/%20/g,"%A0")); // replace spaces by non break spaces
temp = msg.replace("\n"," "); // and replace the 'newline' by a normal space
  return temp; // send back the result
    }
于 2012-06-21T20:11:33.653 に答える
1

それらを垂直パネルに追加することも同様に役立ちます(希望する方法ではありませんが、それでも..):

var vPanel = app.createVerticalPanel().setSize(100,100);
var label = app.createLabel('predominantly blabla blala blabla');
app.add(vPanel.add(label));

リファレンスを参照

于 2012-11-07T15:12:39.767 に答える
1

このようなものは機能しますか?

//takes a line of text and returns a flex table broken by \n

function breakLabel(text) {
  var app = UiApp.getActiveApplication();
  var flexTable = app.createFlexTable();

  text = text.split('\n'); // split into an array 

  for (var i=0; i<text.length; i++){
    flexTable.setWidget(i, 0, app.createLabel(text[i].toString()));
  }

  return flexTable;

}
于 2012-06-22T20:30:59.360 に答える
0

これに出くわしたばかりの人にとって、最善の解決策は、改行が必要なものすべてに対して HTML 出力を作成することです。

ドキュメンテーション

 var htmlApp = HtmlService
     .createHtmlOutput('<p>A change of speed, a change of style...</p>')
     .setSandboxMode(HtmlService.SandboxMode.IFRAME)
     .setTitle('My HtmlService Application')
     .setWidth(250)
     .setHeight(300);

 SpreadsheetApp.getActiveSpreadsheet().show(htmlApp);

 // The script resumes execution immediately after showing the dialog.
于 2015-08-25T21:24:21.120 に答える