0

我正在处理一个应该将 UiApp 嵌入到活动工作表中的主工作表。我尝试使用第一行中的标签对第一部分进行编码,但我坚持让名称 [i] 出现在任务标签下的表格左侧。

我打算在每个任务标签下为每个名称显示复选框。

下面是代码:

function showTable() 
{
var ss = SpreadsheetApp.getActive();
var TL = ss.getRange('B3').getValue();
//SetFontWeight("bold") for TL < *This does not work either* >

var startDate = ss.getRange('B2').getValue();
var strStartDate = startDate.getDate() + "/" + (startDate.getMonth() + 1) + "/" + StartDate.getFullYear();

var counta = ss.getRange('B4').getValue();

var app = UiApp.createApplication().setHeight(375).setWidth(620)
.setTitle('This is ' + TL + "'s Team Tasks for " + strStartDate);

var panel = app.createAbsolutePanel().setId('panel').setHeight(355).setWidth(605)
.setStyleAttribute('background', 'lightCyan');

var names = ss.getRange('B11:B').getValues();

for (var i = 0; 0 < names.length; i++)   **//This is the part that does not work**
{
 var agents = app.createLabel(names[i]); 
}

var handler1 = app.createServerHandler('btnCloseWindow'); 
var btnCloseWindow = app.createButton('Close Window').addClickHandler(handler1).setStyleAttribute('background', 'lightYellow');
handler1.addCallbackElement(panel);

var myLabel0 = app.createLabel('Tasks');
var myLabel1 = app.createLabel('HW');
var myLabel2 = app.createLabel('MU');
var myLabel3 = app.createLabel('MOV');

panel.add(myLabel0, 40, 12)
panel.add(myLabel1, 100, 12)
panel.add(myLabel2, 140, 12)
panel.add(myLabel3, 175, 12)

panel.add(agents, 40, 30)

panel.add(btnCloseWindow, 490, 320)
app.add(panel);
ss.show(app);
return app;
};

function btnCloseWindow(e) 
{
var ss = SpreadsheetApp.getActive();
var app = UiApp.getActiveApplication();
app.close();
return app;
};

你如何用名字制作一个垂直面板?名称在 col B11:B 中定义,任务在标签中定义。

这是我第一次制作 UiApp,非常感谢任何帮助!

4

2 回答 2

0

像这样试试吧,我不知道整个想法应该是什么样子,但现在名字列表的部分是正确的......

function showTable() 
{
var ss = SpreadsheetApp.getActive();
var TL = ss.getRange('B3').getValue()  
ss.getRange('B3').setFontWeight('bold')
var startDate = ss.getRange('B2').getValue();
var strStartDate = Utilities.formatDate(startDate, ss.getSpreadsheetTimeZone(), 'dd/mm/yyyy');

var counta = ss.getRange('B4').getValue();

var app = UiApp.createApplication().setHeight(375).setWidth(620)
.setTitle('This is ' + TL + "'s Team Tasks for " + strStartDate);

var panel = app.createAbsolutePanel().setId('panel').setHeight(355).setWidth(605)
.setStyleAttribute('background', 'lightCyan');

var handler1 = app.createServerHandler('btnCloseWindow'); 
var btnCloseWindow = app.createButton('Close Window').addClickHandler(handler1).setStyleAttribute('background', 'lightYellow');
handler1.addCallbackElement(panel);

var myLabel0 = app.createLabel('Tasks');
var myLabel1 = app.createLabel('HW');
var myLabel2 = app.createLabel('MU');
var myLabel3 = app.createLabel('MOV');

panel.add(myLabel0, 40, 12)
panel.add(myLabel1, 100, 12)
panel.add(myLabel2, 140, 12)
panel.add(myLabel3, 175, 12)

var names = ss.getRange('B11:B').getValues();
Logger.log(names)
for(i=0;i<names.length;++i){
Logger.log(names[i][0]);// names is a 2D array, you only want the first and only column
if(names[i][0]!=''){ // don't show if empty
panel.add(app.createLabel(names[i][0])); //add label to the panel
}
}

panel.add(btnCloseWindow, 490, 320)
app.add(panel);
ss.show(app);

};
于 2013-01-28T22:39:09.473 回答
-1

var 名称 = ss.getRange('B11:B').getValues();

应该,

var names = ss.getRange('B11:B1').getValues();

我是如何研究的,

var data = ss.getRange("b11:b1").getValues();

data.forEach(function(element,index,array){Logger.log(index + " " + element )});

日志,“0 狗 1 猫 2 青蛙 3 鱼 4 仓鼠 5 狗 6 猫 7 青蛙 8 鱼 9 仓鼠 10 狗”

于 2013-01-28T20:35:26.563 回答