2018年6月5日 星期二

HTML透過Apps Script 抓取 Google 試算表

以取得以下試算表為例:
https://docs.google.com/spreadsheets/d/1XMDxo0Bgvk9MJ3-F4uEI28BAcZhER4ACXbMgsB5dtPE/edit?usp=sharing

以下是抓取到的資料

首先需要再Apps Script建立一個專案,記得專案的名稱要一致喔。
https://script.google.com/home

連結Apps Script 程式碼:
<script type="text/javascript">
$(function(){

  var $show = $('#show');
  var a = {
      sheetUrl : 'https://docs.google.com/spreadsheets/d/1XMDxo0Bgvk9MJ3-F4uEI28BAcZhER4ACXbMgsB5dtPE/edit?usp=sharing', //試算表連結,檔案-->共用
      sheetTag : '工作表1',
      row: 1, //起始位置
      col: 1,
      endRow : 3, //結束位置
      endCol : 2
  };
  $.get('https://script.google.com/macros/s/AKfycbx1Wt2jVJcgzoifu1k_0wkeu2yVWsef3q8Ol9r21je81WXQSqVQ/exec',a, function(data){ //專案連結,檔案-->共用
    var d = data.split(',');
    var arr = [];
    for(var i=0; i<(a.endRow-a.row+1); i++){
      arr[i] = d.splice(0, (a.endCol-a.col));
      $show.append(arr[i]+'<br/>');
    }

  });
});
</script>

Apps Script程式碼:
function doGet(e) {
  var params = e.parameter;
  var sheetUrl = params.sheetUrl;
  var sheetTag = params.sheetTag;
  var row = params.row;
  var col = params.col;
  var endRow = params.endRow;
  var endCol = params.endCol;
  var rowRange = endRow - row + 1; //因為自己也要包含所以 + 1
  var colRange = endCol - col + 1;

  var SpreadSheet = SpreadsheetApp.openByUrl(sheetUrl);
  var Sheet = SpreadSheet.getSheetByName(sheetTag);

  var lastRow = Sheet.getLastRow();
  var lastCol = Sheet.getLastColumn();

  if(rowRange>lastRow){
    rowRange = lastRow;
  }

  if(colRange>lastCol){
    colRange = lastCol;
  }

  var data = Sheet.getSheetValues(row, col, rowRange,colRange);

  return ContentService.createTextOutput(data);
}


如果您喜歡我的文章,請在文章最末按5下Like!
我將得到LikeCoin的回饋:)

回饋由LikeCoin基金會出資,您只要註冊/登入帳號(FB、Google帳號都可以註冊,流程超快),按L五次左鍵,可以贊助我的文章且完全不會花到錢!
支持創作,正向交流:)

沒有留言:

張貼留言