-1

open() 메서드를 찾을 수 없습니다.open() 메서드를 찾을 수 없습니다

  1. 찾을 수없는 경우 왜 점을 입력 할 때 선택하게합니까?
  2. 그럼 파일을 어떻게 열어야합니까? openByID()? 정말? 이 신비한 신분증은 어디서 구할 수 있습니까? getURL에서? 진심으로? 이 다가와서 유일한 일 :

    SpreadsheetApp.openById(id).getUrl() 
    

    하지만 난이 난에 ... 캐치 (22)에 선두를 중지하는 ID가없는 경우 URL을 얻을되어있어 방법을 이해하는 데 실패 또한 ID를 얻기 위해 구문 분석해야하는 URL을 얻은 경우 다음과 같은 특별한 주문에 대해 어떤 마법적인 방법을 제공했는지 추정합니다.

명확하게 나의 이해가 부족합니다. 어떤 도움이 필요합니까?

function copyTemplate() { 
    var targetSpreadsheetName="The file"; 

    var targetSpreadsheetID=SpreadsheetApp.open(targetSpreadsheetName).getId(); 
    targetSpreadsheetID.insertSheet("CellData", 1, {template:temp}); 


    // The code below will duplicate the sheet named "CellData" and insert it after 
    // the 1st sheet and call it "CellData" 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var temp = ss.getSheetByName("CellData"); 
    ss.insertSheet("CellData", 1, {template:temp}); 
} 

문제는 여러 부분이다.

반환되는 오류 메시지는 "메서드를 열 수 없습니다()"입니다.

첫 번째 질문은 "왜 메소드를 찾을 수 없습니까?"입니다.

두 번째 질문은 "실제로는 그것을 찾을 수없는 경우, 왜 내가 점을 입력 할 때 내가 그것을 선택할 수 있습니까?"입니다

세 번째 질문은 "open() 메서드 내가 파일을 열 생각하고 어떻게 일을 실패한다는 사실을 고려?"한다 커뮤니티에서받을 것으로 예상되는 대답은 "with openByID()"입니다.

네 번째 질문은 "ID를 어디에서 얻을 수 있습니까?"입니다. 명백한 대답은 "getURL()"인 것 같습니다.

그리고 즉 다섯 번째 질문에 이르게 "어떻게의 getURL()를 사용합니까?" getURL은 ID가 필요합니다. URL을 얻기 위해 getURL에 ID가 필요하고 openByID에 ID를 얻기위한 URL이 필요한 경우 무한 루프가 발생합니다. 확실하게 나는 오해하고있다.

여섯 번째 질문은 "의 getURL()가 솔루션의 일부가 될 수있을 테니까요 경우, 어떻게 하나가 반환되는 캐릭터 라인의 나머지 부분에서 ID를 구별 하는가?"입니다

나는 내 질문을 명확히하기를 바랍니다.

+0

과 같은 스프레드 시트를 열 수 있습니까? –

답변

2

잘 나는 마침내 ;-)

우선 첫번째 ... 당신이 충분히 분명히 찾을 바라고, 귀하의 질문에 대답하려고합니다 :

var ss = SpreadsheetApp.open() 

실제로 자동 완성에 나타나지 않습니다 점 뒤에, 당신이 주목하지 않은 것은 인수가 파일, 즉 적절한 문장에 의해 반환 된 객체라는 것입니다.is available here은 그래서 당신은 스스로를 테스트 할 수 있습니다 해당 코드와 스프레드 시트, 나는 희망 그것을 thisisthesheetIwant 이름

function myFunction() { 
    var files = DocsList.find('thisisthesheetIwant');// this is an array of file objects that include the term 'thisisthesheetIwant' 
    var file = files[0];// I take the first one 
    var filename = file.getName();//and get its name 
    var fileId = file.getId();// its ID 
    var fileurl = file.getUrl();//and its url 
// then I show the results in the logger 
    Logger.log('number of file found = '+files.length+'\n\n'+filename+'\n\n'+fileId+'\n\n'+fileurl+'\n\n') 
    var ss = SpreadsheetApp.open(file);// using that file object I can open a spreadsheet 
    var content = ss.getSheets()[0].getDataRange().getValues().toString();// and get the whole content of the first sheet 
    Logger.log('content = '+content);// there it is 
    } 

: 지금의이 파일의 다른 매개 변수를 얻을 수있는 방법이 예제와 함께, 그것을 얻을하는 방법을 살펴 보자 두 개 이상의 파일이 반환되면 예상했던대로 작동하지 않으므로 유사한 이름이나 내용을 가진 파일이 없습니다.

로거를보고 귀하의 질문에 답변 해 주시기 바랍니다. enter image description here

을 그리고 시트 자체는 다음과 같이이다 : 그것은이 아래와 같이 나타납니다

enter image description here

편집 : ID 및 URL이 공통 부분을 가지고 메모, URL이 브라우저의 주소 표시 줄에서 볼 수있는 것, ID는 그 일부일뿐입니다. 지금 당신은 당신의 질문은 어떻게 스프레드 시트 ID를 찾을 수 있나요

SpreadsheetApp.openById(fileId) 
+0

이것은 훌륭해 보입니다. 파일을 받는다는 사실을 보지 못했다는 점에서 부분적으로 옳습니다. 나는 그것이 파일 이름을 의미하는 것으로 잘못 해석했다. 이전 필자가 필자가 이전에 언급 한 내용을 게시 할 때까지 필자가 필요로하는 파일 핸들임을 깨닫지 못했습니다. 그래도 파일 핸들을 원한다는 것을 아는 것조차도 당신이 올바르게 추측했기 때문에 도움이되지 않았습니다. 어떻게 파일 핸들을 얻는 지에 대해서는 알지 못했기 때문에 여러분의 예가 크게 감사 할 것입니다. 간단히 살펴보면 컨텐트 변수를 제외하고 내가 한 일을 이해할 수 있다고 생각합니다. 그 중 하나는 알아 내려고 꽤 많은 연구를 할 것입니다. –

관련 문제