2015-01-19 4 views
0

Google 드라이브 자체에서 특정 파일 이름 및/또는 유형의 존재를 인식하는 Google 스프레드 시트를 만드는 중입니다.Google 스프레드 시트 링크 (Google 드라이브 포함)

파일이있는 경우 스프레드 시트의 상자에 "X"를 표시하고 싶습니다.

나는/자바 스크립트를 gscript 상당히 새로운 오전과 내가 주위에 놀이를 했어하지만 아무 소용이

나는 현재이있다, 그러나 나는 함께 제대로 코드 조각 방법 확실하지 오전 :

function CheckIfFileExists(name, mimeType){ 
    var flag = false; 
    var files = DriveApp.getFilesByType(mimeType); 
    while (files.hasNext()) { 
    var file = files.next(); 
    if(file.getName() == name) { 
     flag = true; 
     SpreadsheetApp.getActiveSheet().getRange('F2').setValue('Hello'); 
     break; 
    } 
    } 
    return flag; 
} 

가능한 경우 올바른 방향으로 한 점을 주시면 감사하겠습니다.

감사합니다. 비교

답변

0

사용 삼중 등호는 :

if(file.getName() === name) { 

당신은 자바 스크립트에서 이중 파이프로 수행되는 "OR"조건 검사를 추가해야합니다. 파일 이름이 같은 모든 시간 인 경우

StackOverflow - Or Condition in JavaScript

function CheckIfFileExists(name, mimeType){ 

    Logger.log('Value of name is: ' + name); 

    var flag = false; 
    var files = DriveApp.getFilesByType(mimeType); 
    while (files.hasNext()) { 
    var file = files.next(); 
    if(file.getName() === name || file.getMimeType() === mimeType) { 
     flag = true; 
     SpreadsheetApp.getActiveSheet().getRange('F2').setValue('X'); 
     break; 
    } 
    } 

    return flag; 
} 

, 당신은, 값을 전달하는 값 만 하드 코드가 필요하지 않습니다

if(file.getName() === "A1" || file.getMimeType() === mimeType) { 

주를 " 하드 코드 된 "파일 이름"A1 ". 그리고 그것을 큰 따옴표로 묶어 "문자열"로 만듭니다. (텍스트 값)

당신이 통과, 함수에 모든 시간을 다른 파일 이름을 전달하고 함수 호출이 값을 포함해야합니다 :

함수 호출 :

//This causes the function to run, and passes two values to 
//the arguments specified in the arguments parameter. 
CheckIfFileExists("A1", "application/vnd.google-apps.spreadsheet"); 

당신이 만약 값을 함수에 전달할 때 If 문에서 확인할 값을 하드 코딩하지 마십시오. name 변수를 그대로 둡니다.

+0

감사합니다. 그래도 Google 스프레드 시트에는 표시되지 않으며 그 이유를 모르겠습니다. 내 드라이브에 "A1"이라는 파일이 있고 "A1"(따옴표 제외)의 코드 부분에서 "name"으로 이름이 바뀌 었으며 해당 파일이 셀에서 교차되지 않습니다. –

+0

코드를 디버깅해야합니다. 코드에서'Logger.log ('name of value is :'+ name);'를 사용하고 메뉴에서 LOGS를 봅니다. (내 대답은 업데이트 참조) 또는 중단 점을 설정하고 디버거를 사용하고 각 코드 줄을 단계별로 설명합니다. "name"은 변수입니다. 'CheckIfFileExists (name, mimeType)'함수의 "name"인수에 값이 전달되지 않으면'name'의 값은 정의되지 않습니다. 파일 이름을 "이름"으로 바꾸면 일치하지 않습니다. "name"은 'undefined'와 동일하지 않습니다. –

+0

고마워요. 이제 로그가 생겼고 "name"의 값이 정의되지 않았다고 말하고 있습니다. 값을 정의하려면 어떻게해야합니까? 미안하지만, 나는 이것에 상당히 새로운 것이다. –