2017-03-01 7 views
2

からファイル名を取得: https://docs.google.com/uc?id=0B4ptELk-D3USblk1aWd1OWowRWsGoogleスプレッドシートは、私は、このようなこの一つとして、URLのほぼ2000行でGoogleスプレッドシートファイルを持っているURL

各URLは、Googleドライブに保存された画像を、含まれています。私の質問は:どのように私はこのリンク(https://docs.google.com/uc?id=0B4ptELk-D3USblk1aWd1OWowRWs)をファイル名に変換できますか?例えば、私はそれが/something/folder/Photofile1.jpgであるかどうかを知りたいと思います。

これはどうしてですか?

+0

[ドライブアプリ](https://developers.google.com/apps-script/reference/drive/drive-app)、[関連するQ on SO](http://stackoverflow.com/質問/ 25684098/how-to-make-a-list-on-google-spreadsheet-of-a-google-drive-in-a-google-drive-folder) –

+0

これはフォームに対応しています。各行には、固有のアイテムのURL(画像)があります。すべてのファイルをリストするだけでは不十分です。各行を対応するURLにマップすることができないため(各行の有益な情報が失われるため) –

+0

ファイルにアクセスできるようにしてください。スクリプトをテストすることができます。私のファイルには、 'https://drive.google.com/file/d/key ...'のようなリンクがありますので、コードがリンクで動作するかどうかわかりません: 'https://docs.google.com/ uc?id = ... ' –

答えて

0

てみスクリプト:

function TESTgetFileName() { 
    Logger.log(getFileName('0B4ptELk-D3USVi1NZ3ZGbkhqYXc')); 
    //      ^^^^^^^^^^ file ID ^^^^^^^^^ 
} 


function getFileName(id) { 
    var file = DriveApp.getFileById(id); 
    var fileName = file.getName();  
    var strFolders = getFolders(file); 
    return strFolders + '/' + fileName; 
} 

function getFolders(object) { 

    var folders = object.getParents(); 
    if (!folders.hasNext()) { return 'My Drive'; } 
    var folder = folders.next(); 

    var folderNames = []; 

    while (folder.getParents().hasNext()) {   
    var folderName = folder.getName(); 
    folderNames.unshift(folderName); 
    folder = folder.getParents().next(); 
    } 

    return folderNames.join('/'); 

} 
結果が返されます

スクリプト機能:

0B4ptELk-D3USVi1NZ3ZGbkhqYXc → My Drive/something/folder/Photofile1.jpg

テストの私は、スクリプトエディタ、選択した機能TESTgetFileNameを開き、結果を得る

My Drive/Detalhes_Farmacia.Fotografia_Fachada_1.JPEG

この機能は、スプレッドシートから直接ではなくスクリプトから実行できます。あなたがシートからカスタム式としてそれを使用しようとすると、エラーがスローされます。

You do not have permission to call getFileById (line 8).

だから、より良いデータを取得し、シートに結果を書き込むようにスクリプトから、それを使用します。

+0

スクリプトを実行しました。 TESTgetFileNameとgetFileNameを試してみると、次のエラーが表示されます。「getFileById(行8)を呼び出す権限がありません。」 getFoldersの場合、次のように表示されます。 'TypeError:オブジェクト0B4ptELk-D3USVi1NZ3ZGbkhqYXcに関数getParentsが見つかりません。 (行16)。 ' –

+0

私は関数をテストしました。答え** –

+0

の**テスト**を参照してください。実際には、スクリプトエディタから機能します。とにかくそれをシート上で作業させることはありますか?私はリンクを持つほとんど2000行を持っている、それは1つずつ実行するのは難しいだろう。シート上で実行する方法がある場合、列AのURLの隣に列Bの結果を表示できます。 –

関連する問題