Google apps script 创建图像数组

Google apps script 创建图像数组,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我想使用createImage()创建一个图像数组,该数组从Google电子表格中读取URL。我希望忽略范围内的空单元格值,并且能够读取URL相邻列上的值。示例:URL、名称、属性。 这是我到目前为止所拥有的,但无法将URL范围中的多个值加载到不同的图像空间中 函数doGet(e){ var app=UiApp.createApplication().setTitle('不在此处') var abspanel=app.createAbsolutePanel();//.setHeight('100

我想使用createImage()创建一个图像数组,该数组从Google电子表格中读取URL。我希望忽略范围内的空单元格值,并且能够读取URL相邻列上的值。示例:URL、名称、属性。 这是我到目前为止所拥有的,但无法将URL范围中的多个值加载到不同的图像空间中

函数doGet(e){
var app=UiApp.createApplication().setTitle('不在此处')
var abspanel=app.createAbsolutePanel();//.setHeight('100%')。setWidth('100%');
var stackpanel=app.createStackPanel();
var grid=app.createGrid(8,8);
var titleLabel=app.createLabel('nothere');
titleLabel.setStyleAttribute(“文本对齐”、“居中”);
titleLabel.setStyleAttribute(“字体大小”,“135%”);
titleLabel.setStyleAttribute(“字体重量”、“粗体”);
var insertlabel=app.createLabel('哪个计划?(插入文档密钥)');
var inserttxtbox=app.createTextBox().setId('txtbox').setName('ttbox').setMaxLength(44);
var loadbtn=app.createButton('Load Pictures').setId('loadbtn');
var resetbtn=app.createButton('Refresh').setId('rbtn').setVisible(false);
var daylabel=app.createLabel('Select Day');
var mon=“P-mon”
var tues=“P-tues”
var-wed=“P-wed”
var thurs=“P-thurs”
var fri=“P-fri”
var dayListBox=app.createListBox().setWidth('140px').setId('day').setName('sday'))
dayListBox.addItem(周一);
dayListBox.addItem(星期二);
dayListBox.addItem(星期三);
dayListBox.addItem(星期四);
dayListBox.addItem(星期五);
var image1=app.createImage().setPixelSize(250250).setId('image1').setVisible(false);
var image2=app.createImage().setPixelSize(250250).setId('image2').setVisible(false);
var image3=app.createImage().setPixelSize(250250).setId('image3').setVisible(false);
var image4=app.createImage().setPixelSize(250250).setId('image4').setVisible(false);
var image5=app.createImage().setPixelSize(250250).setId('image5').setVisible(false);
var image6=app.createImage().setPixelSize(250250).setId('image6').setVisible(false);
var loadhandler=app.createServerHandler('loadPics');
loadhandler.addCallbackElement(stackpanel);
loadbtn.addClickHandler(loadhandler);
网格
.setWidget(1,0,插入标签)
.setWidget(1,1,inserttxtbox)
.setWidget(2,0,daylabel)
.setWidget(2,1,dayListBox)
.setWidget(3,1,loadbtn)
.setWidget(3,2,重置BTN)
.setWidget(4,2,微调器)
.setWidget(5,1,图像1)
.setWidget(5,2,图像2)
.setWidget(5,3,图像3)
.setWidget(6,1,图像4)
.setWidget(6,2,图像5)
.setWidget(6,3,图像6);
abspanel.add(标题标签);
stackpanel.add(网格);
app.add(abspanel);
应用程序添加(stackpanel);
返回应用程序;
}
函数加载PICS(e){
var app=UiApp.getActiveApplication();
var ss=电子表格app.openById(e.parameter.ttbox);
var list=ss.getSheetByName(e.parameter.sday);
var row=list.getLastRow()-1;
var values2=list.getRange(2,47,1,1);
var values3=list.getRange(2,48,1,1);
var values4=list.getRange(第49,1,1行).getValues();
var image1=app.getElementById('image1').setVisible(true);
var image2=app.getElementById('image2').setVisible(true);
values4=values4.拆分(',');

对于(var i=0;i此版本根据您的意愿加载所有图像。您需要调整电子表格访问以适合您-请参阅嵌入的注释

图像被创建为一个数组,这样就可以在循环中填充并添加到网格中。图像ID也是动态创建的,因此
loadPics()
可以遵循类似的模式。包括将“Name”列中的值添加为图像标题的示例

编辑/添加额外功能:工作微调器,支持图片的名称和属性

maxImgs=6;//网格中的图像数
colUrl=0;//包含URL的列
colName=1;//包含名称的列
colAttr=2;//包含属性的列
函数doGet(e){
var app=UiApp.createApplication().setTitle('nothere');
var abspanel=app.createAbsolutePanel();//.setHeight('100%')。setWidth('100%');
var stackpanel=app.createStackPanel();
var grid=app.createGrid(8,8);
var titleLabel=app.createLabel('nothere');
titleLabel.setStyleAttribute(“文本对齐”、“居中”);
titleLabel.setStyleAttribute(“字体大小”,“135%”);
titleLabel.setStyleAttribute(“字体重量”、“粗体”);
var insertlabel=app.createLabel('哪个计划?(插入文档密钥)');
var inserttxtbox=app.createTextBox().setId('txtbox').setName('ttbox').setMaxLength(44);
var loadbtn=app.createButton('Load Pictures').setId('loadbtn');
var resetbtn=app.createButton('Refresh').setId('rbtn').setVisible(false);
var daylabel=app.createLabel('Select Day');
var mon=“P-mon”
var tues=“P-tues”
var-wed=“P-wed”
var thurs=“P-thurs”
var fri=“P-fri”
var dayListBox=app.createListBox().setWidth('140px').setId('day').setName('sday'))
dayListBox.addItem(周一);
dayListBox.addItem(星期二);
dayListBox.addItem(星期三);
dayListBox.addItem(星期四);
dayListBox.addItem(星期五);
//借来https://sites.google.com/site/scriptsexamples/learn-by-example/uiapp-examples-code-snippets/progress-indicators
var spinner=app.createImage('https://5079980847011989849-a-1802744773732722657'+
“-s-sites.googlegroups.com/site/scriptsexamples/ProgressSpinner.gif”)
.setVisible(假)
.setId(“微调器”);
//单击按钮时,loadbtn的客户端处理程序将启动微调器
//加载完图片后,服务器处理程序将停止微调器
var loadSpinner=app.createClientHandler()
.forTargets(旋转器)
.setVisible(true);
loadbtn.addClickHandler(loadSpinner);
var loadhandler=app.createServerHandler('loadPics');
loadhandler.addCallbackElement(stackpanel);
loadbtn.addClickHandler(loadhandler);
网格
.setWidget(1,0,insertlabel)
.setWidget(1,1,inserttxtbox)
.setWidget(2,0,daylabel)
.setWidget(2,1,dayListBox)
.setWidget(3,1,loadbtn)
.setWidget(3,2,resetbt