GAS

/**

テーブル内容から シートにデータの書き出し

@function testWrittoTOSheet

@params データベース名

@params テーブル名

@params シート名

*/


function escape (val) {
 if (typeof(val)!="string") return val;
  return val      
        .replace(/[\\]/g, '\\\\')
        .replace(/[\/]/g, '\\/')
        .replace(/[\b]/g, '\\b')
        .replace(/[\f]/g, '\\f')
        .replace(/[\n]/g, '\\n')
        .replace(/[\r]/g, '\\r')
        .replace(/[\t]/g, '\\t')
        .replace(/[\"]/g, '\\"')
        .replace(/\\'/g, "\\'"); 
}

JSDOCサンプル

/**
 * Yahoo テキスト解析APIインターフェイスを作成します。<br>
 * <p>
 * Yahoo テキスト解析API(http://developer.yahoo.co.jp/webapi/jlp)を呼び出すためのインスタンスを作成します。
 * </p>
 * <h3>呼び出し例</h3>
 * <pre>
 * var yahooJaTextApi = YahooJaTextApi.create(apiKey);
 * //このあと補完も一応効きます。
 * </pre>
 * @param {string} apiKey APIキー
 * @return {YahooJaTextApi} YahooJaTextApiのインスタンス
 */
function create(apiKey) {
  return new YahooJaTextApi(apiKey);
}

/**
 * キーフレーズ抽出APIを呼び出します。<br>
 * <p>
 * キーフレーズ抽出API(http://developer.yahoo.co.jp/webapi/jlp/keyphrase/v1/extract.html)を呼び出します。
 * </p>
 * <h3>呼び出し例</h3>
 * <pre>
 * var yahooJaTextApi = YahooJaTextApi.create(apiKey);
 * var keyphrases = yahooJaTextApi.keyphrase("東京ミッドタウンから国立新美術館まで歩いて5分で着きます。");
 * Logger.log(keyphrases);
 * </pre>
 * @param {string} sentence 抽出を行う文字列
 * @return {object} {"キーフレーズ" : "重要度"} 
 *
 */
function keyphrase(sentence) {
  throw new Error("このメソッドは直接呼び出せません。createメソッドをコールし取得したインスタンスより呼び出してください。");
}

/**
 * 形態素解析APIを呼び出します。<br>
 * <p>
 * 文字列を形態素解析します。
 * </p>
 * <h3>呼び出し例</h3>
 * <pre>
 * var yahooJaTextApi = YahooJaTextApi.create(apiKey);
 * //デフォルト設定で呼び出し 
 * var result = yahooJaTextApi.parse('すもももももももものうち');
 * Logger.log(result);
 * 
 * //解析情報の指定と、出力する品詞を指定して呼び出し
 * var filteredResult = yahooJaTextApi.parse('すもももももももものうち' , {results:["ma" , "uniq"] , filter:["9"] }); //名詞のみを抽出
 * Logger.log(result);
 * </pre>
 * <p>
 * <code>optValue</code>はAPIに対するオプションで以下のようになります。
 * </p>
 * <h3>optValue</h3>
 * <table>
 *   <thead>
 *   <tr>
 *     <td>Name</td>
 *     <td>Type</td>
 *     <td>Description</td>
 *   </tr>
 *   </thead>
 *   <tbody>
 *   <tr>
 *     <td>results</td>
 *     <td>Array.string</td>
 *     <td>
 *         
 *         返却する情報を設定します。maとuniqが利用できます。<br>
 *         詳しくはYahoo Japan 形態素解析APIのドキュメント(http://developer.yahoo.co.jp/webapi/jlp/ma/v1/parse.html)を御覧ください。<br>
 *         例: ["ma" , "uniq"]
 *         デフォルトは["ma"]となります。
 *     </td>
 *   </tr>
 *   <tr>
 *     <td>filter</td>
 *     <td>Array.string</td>
 *     <td>
 *         解析結果として出力する品詞番号を配列で指定します。<br>
 *         品詞番号はYahoo Japan 形態素解析APIのドキュメント(http://developer.yahoo.co.jp/webapi/jlp/ma/v1/parse.html)を御覧ください。<br>
 *         例: ["1" , "2"]
 *     </td>
 *   </tr>
 *   </tbody>
 * </table>
 * <h3>返却値</h3>
 * <pre>
 * {
 *   __origin__ : {APIの返却結果XMLオブジェクト},
 *   __originalText__ :  {APIの返却結果文字列},
 *   maResult : { //形態素解析の結果
 *     totalCount : {トータルの件数},
 *     filteredCount : {フィルター後の件数},
 *     wordList : [ //形態素リスト
 *       { // 形態素
 *         surface : {形態素の表記},
 *         reading : {形態素の読みがな},
 *         pos : {形態素の品詞},
 *         baseform : {形態素の基本形表記を返します。活用のない形態素の場合は省略},
 *       }
 *     ]
 *   },
 *   uniqResult : { //形態素解析の結果から同一形態素の出現数を求めたもの
 *     totalCount : {トータルの件数},
 *     filteredCount : {フィルター後の件数},
 *     wordList : [ //形態素リスト
 *       { // 形態素
 *         surface : {形態素の表記},
 *         reading : {形態素の読みがな},
 *         pos : {形態素の品詞},
 *         baseform : {形態素の基本形表記を返します。活用のない形態素の場合は省略},
 *         count : {形態素の出現数}
 *       }
 *     ]
 *   }
 * }
 * 
 * @param {string} sentence 形態素解析を行う文字列
 * @param {object} optValue オプション
 * @return {object} 解析結果 
 *
 *
 */
function parse(sentence , optValue){
  throw new Error("このメソッドは直接呼び出せません。createメソッドをコールし取得したインスタンスより呼び出してください。");
}


(function(global) {
  var YahooJaTextApi;
  YahooJaTextApi = (function() {

    YahooJaTextApi.name = 'YahooJaTextApi';

    function YahooJaTextApi(appid) {
      this.appid = appid;
      if (!(this.appid != null)) throw new Error("the appid is required");
    }

    YahooJaTextApi.prototype.keyphrase = function(sentence) {
      var res;
      res = this.sendRequest("http://jlp.yahooapis.jp/KeyphraseService/V1/extract", {
        "sentence": sentence,
        "output": "json"
      });
      return JSON.parse(res.getContentText());
    };

    YahooJaTextApi.prototype.parse = function(sentence, optValue) {
      var maResultXml, parameter, res, result, uniqResultXml, word, xml, _ref, _ref1, _ref2, _ref3;
      optValue = optValue != null ? optValue : {};
      parameter = {
        sentence: sentence,
        results: optValue.results != null ? optValue.results.join(",") : "ma",
        filter: optValue.filter != null ? optValue.filter.join("|") : null
      };
      res = this.sendRequest("http://jlp.yahooapis.jp/MAService/V1/parse", parameter);
      xml = Xml.parse(res.getContentText());
      result = {
        __origin__: xml,
        __originalText__: res.getContentText()
      };
      maResultXml = xml.ResultSet["ma_result"];
      if ((maResultXml != null) && (((_ref = maResultXml["word_list"]) != null ? (_ref1 = _ref.word) != null ? _ref1.length : void 0 : void 0) != null) > 0) {
        result.maResult = {
          totalCount: maResultXml["total_count"].getText(),
          filteredCount: maResultXml["filtered_count"].getText(),
          wordList: (function() {
            var _i, _len, _ref2, _ref3, _ref4, _ref5, _ref6, _results;
            _ref2 = maResultXml["word_list"].word;
            _results = [];
            for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
              word = _ref2[_i];
              _results.push({
                surface: (_ref3 = word.surface) != null ? _ref3.getText() : void 0,
                reading: (_ref4 = word.reading) != null ? _ref4.getText() : void 0,
                pos: (_ref5 = word.pos) != null ? _ref5.getText() : void 0,
                baseform: (_ref6 = word.baseform) != null ? _ref6.getText() : void 0
              });
            }
            return _results;
          })()
        };
      }
      uniqResultXml = xml.ResultSet["uniq_result"];
      if ((uniqResultXml != null) && (((_ref2 = uniqResultXml["word_list"]) != null ? (_ref3 = _ref2.word) != null ? _ref3.length : void 0 : void 0) != null) > 0) {
        result.uniqResult = {
          totalCount: uniqResultXml["total_count"].getText(),
          filteredCount: uniqResultXml["filtered_count"].getText(),
          wordList: (function() {
            var _i, _len, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _results;
            _ref4 = uniqResultXml["word_list"].word;
            _results = [];
            for (_i = 0, _len = _ref4.length; _i < _len; _i++) {
              word = _ref4[_i];
              _results.push({
                surface: (_ref5 = word.surface) != null ? _ref5.getText() : void 0,
                reading: (_ref6 = word.reading) != null ? _ref6.getText() : void 0,
                pos: (_ref7 = word.pos) != null ? _ref7.getText() : void 0,
                baseform: (_ref8 = word.baseform) != null ? _ref8.getText() : void 0,
                count: (_ref9 = word.count) != null ? _ref9.getText() : void 0
              });
            }
            return _results;
          })()
        };
      }
      return result;
    };

    YahooJaTextApi.prototype.sendRequest = function(url, parameter) {
      var option;
      option = {
        method: "post",
        payload: this.buildParameter(parameter)
      };
      return UrlFetchApp.fetch(url, option);
    };

    YahooJaTextApi.prototype.buildParameter = function(parameter) {
      var key, result, val;
      return result = ("appid=" + this.appid) + "&" + ((function() {
        var _results;
        _results = [];
        for (key in parameter) {
          val = parameter[key];
          _results.push(val != null ? "" + key + "=" + (encodeURI(val)) : "");
        }
        return _results;
      })()).join("&");
    };

    return YahooJaTextApi;

  })();
  return global.YahooJaTextApi = YahooJaTextApi;
})(this);