我正在进行无声拍卖。由于该活动是为了慈善活动,因此我不愿意为任何软件付费,因此我尝试在Google中构建合适的软件。
在Google工作表中的工作表“很多”上,我有一个表A1:F11,其中包括标题行。当我收到很多拍卖的捐赠时,此范围将有更多行。
我还设置了一个Google表单,我想链接到我在“手数”表上输入的数据。我想遍历Lots表的每一行,并将B列中的Lot名称添加到表单上的MultipleChoiceItem。
function myFunction() {
var form = FormApp.openByUrl(
'FORM LINK'
)
var workbook = SpreadsheetApp.openByUrl(
'SHEET LINK')
var sheet = book.getSheets()[0];
itemArray = "VALUES FROM SHEET"
var item = form.addMultipleChoiceItem();
item.setTitle('Auction Lots')
.setChoices([
item.createChoice('ItemArray'),
])
}
我已经编写了上面的代码,但实际上并不知道如何将工作表数据添加到数组中。除此之外,我想将C,D和E列的说明,底价和当前最高出价添加到项目列表中,但希望一旦我清除了第一个障碍,就不会有太大问题了!
我正在尝试的可能吗?
TIA!
运行一次createOnSubmitTrigger函数以创建将运行用户发送表单响应时的runOnFormSubmit函数:
function runOnFormSubmit(e) {
//Gets Form and Sheet objects
var form = FormApp.openByUrl('Form-URL')
var workbook = SpreadsheetApp.openByUrl('Spreadsheet-URL')
var sheet = workbook.getSheets()[0];
//Gets the user's responses for the multiple choice and bid price questions
var formResponse = e.response.getItemResponses();
var lotsResponse = formResponse[0].getResponse();
var bidPrice = formResponse[1].getResponse();
//Uses the selected lot name and finds its row in the sheet
var selectedLotName = lotsResponse.split(', ')[0];
var textFinder = sheet.getRange(2, 2, sheet.getLastRow()-1, 1).createTextFinder(selectedLotName).matchCase(true).matchEntireCell(true);
var highestBidCell = textFinder.findNext().offset(0, 3);
var highestBid = highestBidCell.getValue();
if(bidPrice > highestBid) {
highestBidCell.setValue(bidPrice);
}
var lotsQuestion = formResponse[0].getItem().asMultipleChoiceItem();
var itemsArray = sheet.getDataRange().getValues();
itemsArray.shift();
var choicesArray = [];
for(var i=0; i<itemsArray.length; i++) {
var lotName = itemsArray[i][1];
var description = itemsArray[i][2];
var reservePrice = itemsArray[i][3];
var highestBid = itemsArray[i][4];
var choiceString = lotName + ', ' + description + ', ' + reservePrice + ', ' + highestBid;
var choice = lotsQuestion.createChoice(choiceString);
choicesArray.push(choice);
}
lotsQuestion.setChoices(choicesArray);
}
//Creates on form submit trigger
function createOnSubmitTrigger() {
var form = FormApp.openByUrl('Form-URL');
ScriptApp.newTrigger('runOnFormSubmit')
.forForm(form)
.onFormSubmit()
.create();
}