2013-07-05 6 views
0

사용자가 최대 100 줄의 정보를 입력 할 수있는 스프레드 시트를 만들려고합니다. 제출 버튼 스크립트를 클릭하면 해당 데이터가 마스터 데이터 스프레드 시트에 입력됩니다.한 스프레드 시트에서 다른 스프레드 시트로 값을 전송하는 중

나는 마스터 데이터 시트로 데이터를 전송하고 스크립트를 작성했으며 openbyID를 사용하여 대상 시트를 엽니 다.

문제는 마스터 데이터 시트에 액세스하지 않으면 사용자가 시트를 열어 데이터를 추가 할 수 없다는 것입니다. 스프레드 시트에 액세스하지 않고 스프레드 시트에 데이터를 추가하는 방법이 있다면 내 필요에 이상적입니다.

가능한지 알려주세요.

저는 다시 OpenByID를 사용하여 스프레드 시트를 열고 사용자가 스프레드 시트에 직접 액세스하지 않고 마스터 스프레드 시트에 데이터를 추가 할 수있게하려고합니다.

도움을 주시면 대단히 감사하겠습니다.

질문 사항이 있으면 알려주십시오.

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

당신이 날은이 웹 응용 프로그램으로 작업을 변경하는 방법을 설명하는 데 도움 주실 래요 .. 내 스크립트 아래 참조하십시오

당신에게 Khokhar

내 코드 감사?

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에 있습니다. 페이지 아래쪽에있는 권한 및 웹 응용 프로그램

+0

내 코드를 추가하면 webapp을 만드는 방법을 안내해 드리겠습니다. Google 스크립트로 전혀 경험하지 못했습니다 .. 고맙습니다. – Taizooooon

+0

스크립트를 다시 작성하지 않겠습니다. 내가 준 링크는 Google 사이트의 관련 페이지를 가리키며 시작해야합니다. 할 수 없다면 누군가 고용하는 것을 고려하십시오. –

+0

저는 코드가 무엇인지 예를 들어 설명하고 싶었고 데이터 전송을 위해 webapp로 사용하도록 작성한 코드를 수정할 수 있는지 여부에 대한 지침이 필요했습니다. 그렇지 않으면 완전히 다릅니다. 웹 앱 게시 매개 변수를 설명하지만 실제로 웹 응용 프로그램의 작동 방식과 작성 방법을 설명하지 않은 페이지에 대한 링크를 가리 킵니다. 비록 당신의 대답을 주셔서 감사합니다. – Taizooooon

0

시트 하나 또는 두 개를 보호 하시겠습니까? - 시트를 보호 할 수 있으므로 일부 시트는 편집 할 수 있고 다른 시트는 편집 할 수 없습니다. 어떤 시트를 편집 할 수 있는지 제어 할 수 있습니다. ... 데이터베이스 수식을 사용하여 데이터를 가져올 수도 있습니다. 코드 작성보다 업무량이 적습니다. 모든 편집 내역이 있으므로이 시트에 대한 모든 변경 사항을 볼 수 있습니다.

+0

하나의 시트에 여러 시트의 값을 삽입하고 다른 사용자가 다른 사람이 입력 한 정보를 볼 수 없습니다.그 모든 기밀 데이터 ... – Taizooooon

관련 문제