2017-06-28 12 views
0

Googleドライブのファイルに直接リンクを作成したいのですが、これはGoogleのシートにあります。私は手動でこれを行う方法を知っています。 1つのURLの一意のIDを抽出して他のURLに追加する式が必要です。URLSからGoogleドライブのファイルへの直接リンクをGoogleシートで作成する

例のシート https://docs.google.com/spreadsheets/d/11TuHD8CvGunF08swEqXCMuG-ZdWWL3f6csoV5lN1nVE/edit#gid=112012263

私は、この使用= HYPERLINK(CONCATENATEとREGEXREPLACE(IMPORTXMLを実行しようとしましたが、私は本当にどこにもなっていないと、どこから始めればわからなかった。

すべてのヘルプは大歓迎です。

答えて

0

これらのスクリプトをスクリプトエディタに入れて、メニューを作成したらonOpenを実行します。スプレッドシートに戻り、ファイル名のリストの右に空白の列があることを確認してからセレあなたのすべてのファイル名とその右側のセルをctします。次に、[マイツール]メニューから[ファイルへのリンクを取得]を選択します。ファイルIDは、選択したすべてのファイルの横に表示されます。今日はゆっくりと走っているので、気をつけてください。また、ファイルの1つでエラーが発生した場合でも、エラーリカバリはありませんので、手作業で行う必要があります。私は、6分のスクリプトタイムアウトがあるので、一度にあまり多く選択しません。

function onOpen() 
{ 
    SpreadsheetApp.getUi().createMenu('My Tools') 
    .addItem('Get Links to Files','testFind') 
    .addToUi(); 
} 

function testFind() 
{ 
    var sht = SpreadsheetApp.getActiveSheet(); 
    var rng = sht.getActiveRange(); 
    var rngA = rng.getValues(); 
    for(var i=0;i<rngA.length;i++) 
    { 
    rngA[i][1]=findFileByNameReturnId(rngA[i][0]); 
    } 
    rng.setValues(rngA); 
} 

function findFileByNameReturnId(name) 
{ 
var rv = ''; 
var files = DriveApp.getFiles(); 
while (files.hasNext()) 
{ 
    var file = files.next(); 
    if(file.getName()==name) 
    { 
    rv = file.getId(); 
    } 
} 
+0

すでにシートにファイルのリストがあります。そのIDを抽出するだけで、別のファイルに追加することができます。私はどのように使用する/ Googleスクリプトを実装するのか分かりませんが、どのように感謝します。 –

+0

これをスクリプトエディタにコピーし、あなたのためにonOpenを実行したので、MyToolsメニューが表示されます。列Aのファイル名を取り込み、列Aの一部と列Bを選択し、GetLinksToFilesを選択します。そして、これがうまくいくなら私の答えをチェックしてください – Cooper

関連する問題