0

OK、プロジェクトに役立つ特定の質問を探したり、答えを見つけたり、実装を変更して質問を追加したり、物事を行うためのより良い方法があることに気付いたりすることにうんざりしています。一般的な支援を求めさせてください。その後、最善を尽くしてその方法を調査し、必要に応じてさらに質問します。

  • Google サイト ページでガジェットとして使用するスクリプトを作成しています (誰かが見たい場合は、喜んで共有します)。今は自分のためだけにやっていますが、他の人が簡単に使えるように書きたいと思っています。
  • これにより、指定されたフォルダー内のすべてのユーザーの Google ドキュメントが一覧表示されます。リストからドキュメントを選択すると、コンテンツが別のフィールドで編集できるように表示されます。
  • ユーザーは、ピリオドで始まる特定の行を定義して、ボタンを押すだけで自動的に移調できるコードとして「マーク」することができます。つまり、ユーザーがボタンをクリックすると、すべての A が A# に、B から C に、C から C# に、というように移動しますが、指定された "Chord" ラインのみです。
  • その後、ユーザーはこのドキュメントを Google ドキュメントに保存して、必要に応じて印刷することができます。

レイアウトはおおむね把握しています。私が遭遇しているいくつかの問題:

  • を実行する.findと、名前と内容に指定された文字列が含まれるすべてのドキュメントが明らかに検出されます。解決策は、ドキュメント ID を Hidden に配置することですが、リストがクリックした番号付きアイテムを返すようには見えないので、別の場所に保存されている ID を取得するにはどうすればよいでしょうか?
  • TextArea を太字などのリッチテキストにしたいと思います。Google Apps にはテキスト エディタがありますか (パネルに Google ドキュメント エディタを配置できれば最高です)。RichTextArea は廃止されました。代替品はありますか?
  • 転置を行うために、テキスト領域のすべての文字を配列に入れ、「\n」に続いて「.」が表示されたときに配列をステップ実行することを計画していました。変数を「オン」に切り替えてから、後続の文字を変更し、別の「\ n」が見つかった場合は、変数を「オフ」にします。これを行うより良い方法はありますか?
  • または、転置を行うスクリプトを Google ドキュメントに追加する方法はありますか (スプレッドシートのマクロを実行できることは知っていますが、ドキュメントに相当するものは実際にはないようです)。そうすれば、このマクロを配布して、既存のドキュメントで使用するよう人々に伝えることができます。
4

1 に答える 1

2

あなたが尋ねたので、はい、個々の問題はより一般的で、より多くの人に役立つかもしれませんが、質問の組み合わせは非常に専門的であるため、個別の質問が適切です。でもとにかく突っ込んでみようかな…

[の結果find()]...どうすれば別の場所に保存されているIDも取得できますか?

DocsList.find()はFile オブジェクトのリストを返します。Class File には、getId()Google ドライブで見慣れているドキュメント ID を返すメソッドがあります。すべてのファイルの ID を取得するには:

var files = DocsList.getAllFiles();
for (var i in files) {
  Logger.log(files[i].getId());
}

Google ドライブで動作するファイル ピッカーを作成するには、 DocsListDialogも参照してください。

RichTextArea は廃止されました。代替品はありますか?

いいえ、apps-script にはありません。TextAreaを取得しました。ただし、サードパーティのリッチ テキスト エディターを UI に埋め込むことができる場合があります。

転置を行うには、...これを行うより良い方法はありますか?

TextArea.value を行の配列に変更し、オン/オフ状態を管理する必要なく、それらを操作します。ボタンのクリック時に Google App Script で TextArea から情報を取得するにはどうすればよいですか? を参照してください。Javascript: textarea を array に変換します。

// aTextArea contains user's input. Probably a Johnny Cash song.
var inputText = e.parameter.aTextArea;
var inputLines = inputText.split('\n');
for (var i in inputLines) {
  if (inputLines[i].charAt(0) == '.') {
    // Transpose
  }
}
// Put lines back together, if you wish
var outputText = inputLines.join('\n');

..転置を行うスクリプトを Google ドキュメントに追加する方法はありますか...

はい (最初に質問があったため、Docs と Forms に機能が拡張されました)。いいえ、スプレッドシートは、現時点でスクリプトのコンテナーにできる唯一のドキュメント タイプです。

または、スタンドアロン スクリプトを使用してドキュメントを直接操作することもできます。おそらく、ユーザーが Google ドライブのドキュメントから移調するターゲットの音楽を選択し、移調されたドキュメントの新しいコピーを書き込むことができるWeb アプリとして展開されたスクリプトを使用しますか?

于 2013-04-12T02:15:35.047 に答える