からくりブログ

株式会社からくり社員のブログです

SpreadSheetの表をTextile記法に変換してみた(その2)

SpreadSheetの表をTextile記法に変換してみた(その1)の続きとなります。

前回は、Google Apps Script(以下GAS)の説明や使用したAPI、処理フローについて紹介しました。

今回は、SpreadSheetからTextile記法への変換(以下コンバーター)のコードの一部と公開方法を紹介します。

目次

  1. コンバーターのコード
  2. アドオンの公開方法

1.コンバーターのコード

コンバーターの処理の一部を紹介したいと思います。

  // 結合されているセル番地を格納する配列を用意
  let merged_address = [];
  let merged_first_address = [];

  // 結合されているセルの数だけ、セル番地を取得
  for (let i = 0; i < merged_ranges.length; i++) {
    merged_first_address.push(merged_ranges[i].getRow()+","+
                               merged_ranges[i].getColumn());
    for (let j = 0; j < merged_ranges[i].getWidth(); j++) {
      for (let k = 0; k < merged_ranges[i].getHeight(); k++) {
        merged_address.push((merged_ranges[i].getRow()+k)+","+ 
                             (merged_ranges[i].getColumn()+j));
      }
    }
  }

上記のコードでは結合されているセルの左上を取得してそこから縦と横の長さを求めています。

   // 文字色確認
      if (checkCharacterColor(fontcolors[row][col])) {
        // 文字色 + セル文字列
        text = getCharacterColor(values[row][col], fontcolors[row][col]);
      } else {
        // セル文字列のみ
        text = values[row][col];
      }

上記のコードでセル文字列と文字の色を取得しています。

var styles = textStyles[row][col];
      // イタリック
      if(styles.isItalic()){
         text = "_" + text + "_"
      }

   // 強調
      if(styles.isBold()){
         text = "*" + text + "*"
      }

上記のコードはセル文字列の書式を取ってきます。その後、イタリックなら”_”、強調なら”*”を取ってきた文字列の左右に追加します。

 for(var row = 0; row < rowNo; row++) {
    // 行開始
    var rowText = '';
    // 列 ループ
    for(var col = 0; col < colNo; col++) {   
      
      ~中略~

      // セル終了
      rowText += '|';
    }
    // 1行分のtextile (保存先) + 行終了
    rowText = '|' + rowText +  '\n';
    // 1行格納
    textdata += rowText;
 }

上記のコードはセルの最後に”|”を追加しています。その後、一行分を保存しています。

2.アドオンの公開方法

公開方法はいくつかありますが、今回はアドオンでの公開方法を紹介します。

ⅰ.アドオンのバージョンを作成

  1. [ファイル] > [バージョンの管理] を選択します。
  2. バージョンの説明を記載し、[新しいバージョンの保存] を選択します。
    これで現在のスクリプトを新しいバージョンとして保存できます。

ⅱ.標準のGoogle Cloud Platform プロジェクトの作成

  1. [リソース] > [Cloud Platform プロジェクト] を選択します。
  2. プロジェクトのリンクをクリックします。
  3. ダッシュボードが開くので、左のメニューから [APIとサービス] > [認証情報] を選択します。
  4. [OAuth 同意画面]を選択し、「認証済みドメイン」と「[アプリケーション ホームページ]リンク」を入力して、保存します。
  5. Google CloudPlatformコンソール を開きます。
  6. 上部にある [プロジェクトの選択] をクリックします。
  7. 上部の検索バーにGoogle Workspace Marketplace SDKと入力します。
  8. Google Workspace Marketplace SDKページで、[有効にする]をクリックします。
  9. 左のメニューで「設定」を選択して「アプリケーションの説明」を入力します。
  10. 「アプリケーションのアイコン」と「利用規約のURL」を設定します。
  11. アドオンのコードの[ファイル ] > [プロジェクトのプロパティ] >[スコープ] のURLを確認します。
  12. 確認したURLを「OAuth スコープ」に入力します。
  13. 「アドオン拡張機能」の「スプレッドシート 拡張機能」にチェックを入れ、「スクリプトのプロジェクトキー」に「スクリプト ID」、「スクリプトのバージョン」に保存したバージョンを入力し「変更を保存」をクリックします。

ⅲ.アプリを公開する

  1. [公開] > [ウェブアドオンとしてデプロイ] を選択します。
  2. [アドオンとして配置] の項目をそれぞれ入力します。
  3. 「ウェブストア アイテムの下書きを作成」をクリックします。
  4. サイトの一番下に Public,Unlisted,Privateがあるので選択し、「Publish changes」をクリックします。(エラーが出た場合はそれぞれ解消してください。)
    ・publicはすべてのユーザーがアプリや拡張機能を閲覧してインストールできます。(この場合はレビューが必要になります。)
    ・Unlistedはリンクを知っているユーザーのみが閲覧してインストールできます。
    ・privateはドメイン内のユーザーのみがアプリや拡張機能を閲覧してインストールできます。

詳しくはGoogle App Scriptの公式サイトを参考にしてください。

最後に

今回はSpreadSheetの表をTextile記法に変換する方法や公開方法等を2回にわたり紹介しました。

SpreadSheetからTextile記法への変換Scriptの作成を通じて、GASのコードの書き方やAPI、公開方法を紹介しましたが、いかがだったでしょうか?

参考になれば幸いです。

「SpreadSheetの表をTextile記法に変換してみた(その2)」は以上です。

ご覧いただき、ありがとうございました。

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>