1

私は数日前にGoogleスクリプトを使用して開発を開始し、最近stackoverflowに参加しました。addToFolder()関数に問題があります。新しいスプレッドシートをGoogleドライブのフォルダ(テスト/スプレッドシート)にコピーする次のコードがあります。

var ss = SpreadsheetApp.create("test");
var ssID = ss.getId();
DocsList.getFileById(ssID).addToFolder(DocsList.getFolder("test/sheets"));

私の問題は、同じファイルの2つのバージョン(1つはGoogleドライブフォルダーのルートにあり、もう1つはtest / sheetsフォルダーにある)を持っていることです。どちらかのコピーを削除しようとすると、もう一方のコピーも削除されます。 。古いファイルを削除して新しいファイルを保持する方法はありますか、または最初に目的のフォルダーにファイルを作成する方法はありますか?


編集 :

迅速な対応ありがとうございます。これを数時間試しましたが、ファイルを宛先フォルダーにコピーする際に問題が発生します。問題は、ファイルのmakeCopyメソッドを使用する場合でも、フォルダーについて言及するための唯一のオプションがaddToFolderであるということです。この場合も、宛先フォルダーにタグ付きファイル名が含まれることになります。コピー方法でも同じ問題がありました。
これが私の新しいコードです:

var SetLocationFile = "icompare/sheets/stocks" 
var FolderID = DocsList.getFolder(SetLocationFile); 
var FileID = DocsList.getFileById(ssID); 
FileID.makeCopy("test3").addToFolder(FolderID);
4

3 に答える 3

5

Google Docs \GoogleDriveのフォルダは実際にはタグです。「test/sheets」フォルダにファイルを「追加」するときは、ファイルのコピーを作成せず、「test/sheets」タグを付けるだけです。これで、同じファイルが「test / sheets」フォルダ(つまり、「test / sheets」というタグが付いたすべてのファイルのリスト)とルートの両方に表示されます。ファイルのコピーを作成する場合は、copyメソッドを使用する必要があります。(私があなたの質問を誤解している場合は、私に知らせてください。)

于 2012-07-15T21:56:14.800 に答える
2

これは古い質問だと思いますが、単純.removeFromFolder(DocsList.getRootFolder());にルート フォルダーからファイルを削除するために使用できます。

于 2013-03-25T22:27:12.763 に答える
0

この質問への答えも知りたいです。APIがスプレッドシートを作成して特定のマップに配置する方法さえ提供していないのはかなり「奇妙」に思えますか?いいえ、ファイルのコピーは必要ありません。ファイルを特定のマップに配置し、他のマップには配置しないでください...

于 2013-01-03T09:38:20.227 に答える