Yuki_in_OWL
@Yuki_in_OWL (Shinichi Sato)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

webの情報をスプレッドシートに格納するアプリに情報を追加できない

Q&A

  1. 【必須】やりたい・やりたかったこと 標記の通り

let output= result.slice(result.indexOf(" front_subsidy_detail_page_url"),result.indexOf(","));
console.log(output);

この部分で、URLを抽出したいができない。どうすればいいですか?

  1. 【必須】起きている問題やエラーメッセージ ※できるだけ詳細に書いてください ログ 15:13:13 お知らせ 実行開始 15:13:16 情報 https://api.jgrants-portal.go.jp/exp/v1/public/subsidies/id/a0W2x000005j6ujEAA 15:13:18 情報 p 15:13:18 情報 [[Element:

    ], [Element:

    ], [Element:

    ], [Element:

    ], [Element:

    ], [Element:

    ], [Element:

    ], [Element:

    ], [Element:

    ], [Element:

    ], [Element:

    ], [Element:

    ], [Element:

    ], [Element:

    ], [Element:

    ], [Element:

    ], [Element:

    ], [Element:

    ]] 15:13:18 情報 15:13:54 お知らせ 実行をキャンセルしました```

3. 【必須】ご自身で試されたこと ※できるだけ詳細に書いてください

※例1. [ xx xxx ] とGoogleで検索したが全く答えに辿り付けなかった

※例2. https://** を参考に xxx してみた

4. 関連するソースコードやスクリーンショット

function hojokin() {
  // ここは SpreadsheetApp.getActiveSpreadSheet() でも良いとは思います
  const spreadSheet = SpreadsheetApp.openById("1JrGBMHRITdyHKfCnaC04LkMTCTeK2wl3HodGwrbaTeI");
  const sheetName1 = "シート1";
  const sheetName2 = "シート2";
  const sheet1 = spreadSheet.getSheetByName(sheetName1);
  const sheet2 = spreadSheet.getSheetByName(sheetName2);
  // headerにはAPIのレスポンスフィールドの一覧を1行目に記入しておきます
  const header = sheet2.getRange("A1:I1").getValues()[0];
  // シート1の検索キーワード(C11セル)の値をキーとして利用
  const key = encodeURI(sheet1.getRange(11,3).getValue());
  const url = `https://api.jgrants-portal.go.jp/exp/v1/public/subsidies?keyword=${key}&sort=created_date&order=DESC&acceptance=1`;
  const json = JSON.parse(UrlFetchApp.fetch(url).getContentText());
  const result = json["result"];
  for(i=0; i<result.length; i++) {
    let row = [];
    for (j=0; j < header.length; j++) {
      row.push(result[i][header[j]]);
    }
    sheet2.getRange(i+2,1, 1, header.length).setValues([row]);
  }
  // 再度ID列を調べ、値を取ってきてdetail列に貼り付ける
  const idIndex = header.indexOf("id")+1;
  const detailIndex = header.indexOf("detail")+1;
  const lastRow = sheet2.getLastRow();
  const idList = sheet2.getRange(idIndex+1, 1, lastRow, 1).getValues();
  // そのリストごとに処理する
  for(let i = 0; i < idList.length; i++) {
    if (idList[i][0] === "") {
      break;
    }
    // detail列を更新する
    setDetail(sheet2, idList[i][0], sheet2.getRange(i+2, detailIndex));

  }
}
0

No Answers yet.

Your answer might help someone💌