0

google apps scriptを実行すると、別のGoogleシートから作成されたGoogleシートのファイル処理に問題があります。スクリプトを実行すると、新しい出力ファイルが作成され、特定のラベルを持つフォルダに送信されます。目標は、出力ファイルをグループドライブの特定のフォルダに追加することです。私の問題に関するスクリプトとファイルはすべて、グループドライブにも存在しません。Googleドライブサービス。コピーしたファイルをグループドライブフォルダにコピーします。ファイルが空です

私はスクリプトを実行すると、これが起こります。私はグループドライブ上のものと同じ正確な名前のフォルダを持っているので

  1. ファイルは私の個人的なGoogleドライブ内に作成された(これは、スクリプトのための私のテスト環境でした)。ドライブ上のこのファイルは、Googleシート内のすべての出力を必要とします。ドライブのルートにもファイルが追加されていましたが、スクリプトはこれをルートから削除します。

  2. ファイルはグループドライブに作成されますが、完全に空です。ファイルの名前は正しくありますが、実際のスプレッドシートには内容がありません。

    var sourceFilename = ss.getName(); 
        var splitSourceFilename = sourceFilename.split("LMS"); 
        var targetFilename = splitSourceFilename[0] + "Allowed_Layers_Vx"; 
    
        // move the new spreadsheet to Allowed Layers Lists folder 
        var folders = DriveApp.getFoldersByName("Allowed Layers Lists"); 
        while (folders.hasNext()) { 
        var folder = folders.next(); 
        var ssNew = SpreadsheetApp.create(targetFilename); 
        var copyFile = DriveApp.getFileById(ssNew.getId()); 
        folder.addFile(copyFile); 
        DriveApp.getRootFolder().removeFile(copyFile); 
        } 
    

    グループドライブに関するいくつかの他の情報:

    1. 私はグループのドライブを作成していない。ここ

    は、出力ファイルを処理しているスクリプトです。私と共有されています

  3. 私はファイルとスクリプトが存在するフォルダの所有者です。
  4. 私は自分が所有するこれらのフォルダ内のすべてのファイルとスクリプトの所有者です。
  5. 私はこのグループドライブのすべてのレベルで編集権限を持っています。
+1

ソース文書/フォルダに対してエディタ権限を正しく設定していることを確認してください。データを新しい文書にコピーしている間にファイルを破棄しているかもしれません。また、現在の 'Document'を保存するこの[' saveAndClose'](https://developers.google.com/apps-script/reference/document/document#saveandclose)メソッドをチェックする必要があります。 – abielita

答えて

0

での回答を参照することが、私はデータ処理が発生した後、スクリプトの最後に、コードのブロックを移動することになりました。何らかの理由で、自分のドライブ内で、ファイルを別のフォルダに追加しても関係ありませんでしたが、スクリプトはそのファイルのすべてのインスタンスを更新します。しかし、グループドライブ内では、自分のルート内のファイルだけが更新されていました(スクリプトの最後にそのブロックを移動するまで)。

これがなぜ発生するかについての説明は歓迎です。

+1

'var ssNew = SpreadsheetApp.create(targetFilename);'は、別個の新しい空のファイルを作成します。一方で、単一のファイルを確実に複数のフォルダに追加することができます。そのファイルのインスタンスはすべて、同じファイルへのポインタにすぎず、親フォルダに関係なくコンテンツは同一になります。助けてくれることを望む。 – some1

+0

ありがとうございます。 –

+2

@ some1の説明にはほとんど修正がありません。フォルダは、Unixフォルダにinodeのリストが含まれているという意味で、ファイルを指していません。 GDriveでは、各ファイルに親フォルダのリストがあるため、ファイルはそのファイルを指すフォルダではなく、フォルダを指します。 – pinoyyid

1

上記のスクリプトには、実際には「ファイルコピー」はありません。 SpreadsheetApp.create(targetFilename)という新しい空のファイルを作成し、それをフォルダに追加するだけです。 Googleスプレッドシートのコピーを作成する

、あなたがGoogle App Script: How do I make copy of spreadsheet and save it to particular folder?

+0

私は月曜日fyi(週末オフ)でこれをチェックします。入力いただきありがとうございます。 –

+0

データ処理が行われた後、そのコードブロックをスクリプトの最後に移動させることになりました。何らかの理由で、自分のドライブ内で、ファイルを別のフォルダに追加しても関係ありませんでしたが、スクリプトはそのファイルのすべてのインスタンスを更新します。しかし、グループドライブ内では、自分のルート内のファイルだけが更新されていました(スクリプトの最後にそのブロックを移動するまで)。 –

関連する問題