2013-07-05 6 views
0

Я пытаюсь создать электронную таблицу, которая может позволить пользователю вводить до 100 строк информации, и когда они нажимают кнопку кнопки отправки, эти данные будут вводиться в таблицу основных данных.Передача значения из одной таблицы в другую

Я написал сценарий, который работает и передает данные в основной лист данных, и я использую openbyID для открытия целевого листа.

Проблема в том, что без доступа к основной информационной странице пользователь не может открыть лист для добавления данных. если есть способ добавить данные в электронную таблицу, не имея доступа к этой таблице, было бы идеально для моих нужд.

Пожалуйста, дайте мне знать, если это возможно.

Еще раз я в настоящее время использую OpenByID для открытия электронной таблицы и хотел бы, чтобы пользователи могли добавлять данные в мастер-таблицу без прямого доступа к электронной таблице.

Помощь будет принята с благодарностью.

Пожалуйста, дайте мне знать, если у вас есть вопросы.

Спасибо Khokhar

Мой код:

Sorry I am not sure how to write my script as web app. 

смотрите ниже мой сценарий .. пожалуйста, вы можете помочь мне объяснить, как изменить его на работу в качестве веб-приложения?

Спасибо

function CopyDataToMaster() { 
    var inf = SpreadsheetApp.getActiveSpreadsheet(); 
    var inf_sheet = inf.getSheetByName("Info"); 
    var tt_key = inf_sheet.getRange("A4").getValue(); 
    var SiteName = inf_sheet.getRange("A2").getValue(); 
    var d = new Date(); 

    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var tt = SpreadsheetApp.openById(tt_key); 

    var ss_sheet = ss.getSheetByName("Report"); 
    var tt_sheet = tt.getSheetByName("Master-Data-Sheet"); 
    var FilledBy = ss_sheet.getRange("C5").getValue(); 

    var tt_last_row = tt_sheet.getLastRow(); 
    var tt_work_row = tt_last_row+1; 

    for (var i=1; i<=100 ; i++) { 
    var dDr = ss_sheet.getRange(i+10, 2); 
    var dD = dDr.getValue(); 
    if (dD!="") { 
     var nMr = ss_sheet.getRange(i+10, 3); 
     var nM = nMr.getValue();  
     var aMr = ss_sheet.getRange(i+10, 4); 
     var aM = aMr.getValue();  
     var bWr = ss_sheet.getRange(i+10, 5); 
     var bW = bWr.getValue();  
     var bSr = ss_sheet.getRange(i+10, 6); 
     var bS = bSr.getValue();  
     var tDr = ss_sheet.getRange(i+10, 7); 
     var tD = tDr.getValue();  
     var mOr = ss_sheet.getRange(i+10, 8); 
     var mO = mOr.getValue();  
     var bOr = ss_sheet.getRange(i+10, 9); 
     var bO = bOr.getValue();  
     var dCr = ss_sheet.getRange(i+10, 10); 
     var dC = dCr.getValue(); 

     tt_sheet.insertRowAfter(tt_work_row-1); 

     tt_sheet.getRange(tt_work_row,1).setValue(Utilities.formatDate(new Date(),+5.5, "MM/dd/yyyy HH:mm:ss")); 
     tt_sheet.getRange(tt_work_row,2).setValue(SiteName); 
     tt_sheet.getRange(tt_work_row,3).setValue(FilledBy); 
     tt_sheet.getRange(tt_work_row,4).setValue(dD); 
     tt_sheet.getRange(tt_work_row,5).setValue(nM); 
     tt_sheet.getRange(tt_work_row,6).setValue(aM); 
     tt_sheet.getRange(tt_work_row,7).setValue(bW); 
     tt_sheet.getRange(tt_work_row,8).setValue(bS); 
     tt_sheet.getRange(tt_work_row,9).setValue(tD); 
     tt_sheet.getRange(tt_work_row,10).setValue(mO); 
     tt_sheet.getRange(tt_work_row,11).setValue(bO); 
     tt_sheet.getRange(tt_work_row,12).setValue(dC); 

     dDr.clearContent(); 
     nMr.clearContent(); 
     aMr.clearContent(); 
     bWr.clearContent(); 
     bSr.clearContent(); 
     tDr.clearContent(); 
     mOr.clearContent(); 
     bOr.clearContent(); 
     dCr.clearContent(); 

     tt_work_row = tt_work_row+1; 
    } 
    } 
    Browser.msgBox("Thank you", "Information has been submitted",Browser.Buttons.OK) 
} 
+0

Удачи вам в этом. Ответ приведен в документации, то есть документации Google-Apps-Script & JavaScript. ... Это больше того, что вы заплатили бы программисту. – eddyparkinson

ответ

0

Вы можете создать сценарий как веб-приложение, которое может получить доступ к Google документы и электронные таблицы. Если вы это сделаете, вы можете установить разрешения на сценарий, чтобы пользователь, запускающий его, имел ваши разрешения, а не свои собственные. Если у вас есть доступ к основной таблице, чем ваш сценарий, но ваши пользователи не будут.

Подробная информация на сайте Google Developers site. Посмотрите страницу на страницу Права доступа и WebApps

+0

Я добавил свой код, пожалуйста, помогите мне, как создать webapp. Я вообще не испытываю ошибок с помощью скриптов Google. Спасибо – Taizooooon

+0

Я не собираюсь переписывать ваш скрипт для вас. Ссылка, которую я дал вам, указывает на соответствующую страницу на сайте Google, на которой вы должны начать. Если вы не можете это сделать, подумайте о найме кого-то. –

+0

Я просто хотел привести вам пример того, что такое мой код, и необходимые указания относительно того, смогу ли я изменить свой код, который я написал для использования в качестве webapp для передачи данных, или он будет совершенно другим. Ссылка, которую вы указали на страницу, которая объясняет параметры публикации веб-приложений, но не объясняет, как работают webapps и как начать писать. Спасибо за ваш ответ, хотя .. – Taizooooon

0

Защитите лист или два? - Вы можете защитить листы, поэтому некоторые листы можно отредактировать, а другие - нет. Вы можете контролировать, кто может редактировать эти листы. ... Также, возможно, использовать формулы базы данных, чтобы вытащить данные. Меньше работы, чем написание кода. Поскольку есть история всех изменений, вы можете использовать это, чтобы увидеть все изменения, внесенные в листы.

+0

Я вставляю значение из нескольких листов в один лист и не могу видеть, что разные пользователи видят информацию, введенную кем-либо еще.все его конфиденциальные данные ... – Taizooooon

Смежные вопросы