2013-07-05 113 views
0

我試圖創建一個電子表格,可以允許用戶輸入多達100行的信息,當他們單擊提交按鈕時,腳本會將該數據輸入到主數據電子表格中。從一個電子表格向另一個電子表格傳輸價值

我已經編寫了腳本,可以將數據傳輸到主數據表,並且我使用openbyID打開目標表。

問題是,如果沒有訪問主數據表用戶無法打開工作表來添加數據。如果有辦法將數據添加到電子表格而無法訪問該電子表格,那麼這對我的需求來說是理想的。

請讓我知道這是否可能。

我再次使用OpenByID打開電子表格,並希望允許用戶將數據添加到主電子表格,而無需直接訪問電子表格。

幫助將不勝感激。

如果您有任何問題,請讓我知道。

謝謝 霍哈爾

我的代碼:

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

請參閱下面我的腳本..你可以請幫我解釋一下如何改變它爲Web應用程序的工作?

謝謝

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

您可以創建一個腳本的Web應用程序,它可以訪問谷歌文檔和電子表格。如果你這樣做,你可以在腳本上設置權限,以便運行它的用戶擁有你的權限而不是他們自己的權限。如果您有權訪問主電子表格而不是您的腳本,但您的用戶不會。

詳細信息請見Google Developers site。向下看權限和Web應用程序

+0

我已經添加了我的代碼可以請你幫我指導如何創建webapp ..我沒有經驗與谷歌腳本.. 謝謝 – Taizooooon

+0

我不會爲你重寫你的腳本。我給你的鏈接指向了Google網站上的相關頁面,可以幫助你入門。如果你無法做到這一點,可以考慮聘請某人。 – 2013-07-05 01:59:23

+0

我只是想給你舉例說明我的代碼是什麼,需要指導我是否能夠修改我編寫的用於數據傳輸的Web應用程序的代碼,否則將會完全不同。您給出的鏈接指向解釋發佈Web應用程序參數的頁面,但並未真正解釋Web應用程序的工作方式以及如何開始編寫Web應用程序。謝謝你的回答,雖然.. – Taizooooon

0

保護一張或兩張? - 您可以保護紙張,因此可以編輯一些紙張,而其他紙張則不能。您可以控制誰可以編輯哪些表單。也可以使用數據庫公式來拉動數據。比編寫代碼更少的工作。由於所有修改都有歷史記錄,因此您可以使用它查看對工作表所做的所有更改。

+0

我插入價值從多個工作表到一張,不能讓不同的用戶看到其他人輸入的信息。其所有機密數據... – Taizooooon

相關問題