跳至主要內容
Adaptive Planning
上次更新時間 :2023-06-23
參照︰CCDS 指令碼範例 Google 工作表

參照︰CCDS 指令碼範例 Google 工作表

Prerequisites

連線至 Google 雲端硬碟前,請完成以下幾個預備步驟︰
  1. 瀏覽至您的 Google 雲端硬碟。
  2. 選取
    新增
    ,然後選擇「檔案上傳」將 csv 檔案上傳至您的 Google 雲端硬碟。範例︰CCDSDemo.csv
  3. 在上傳的檔案上按一下滑鼠右鍵,然後選取
    共用
  4. 與使用者和群組共用
    窗格中,將共用設定設為
    知道連結的使用者
  5. 從共用連結取得 Google 文件 ID。範例︰在範例 URL 中
    https://drive.google.com/file/d/1QZYX2345ri6789/view?usp=sharing
    ,檔案 ID 為
    1QZYX2345ri6789
  6. 請將檔案 ID 填入指令碼中。範例︰
    var url = 'https://drive.google.com/uc?export=downloade&id=ENTER_FILE_ID_HERE';

Google 試算表範例指令碼

var tableName = 'Csv Example'; //Make sure you adjust the settings to allow people to download this file from your google drive var url = 'https://drive.google.com/uc?export=downloade&id=ENTER_FILE_ID_HERE'; /* Example cvs file: ---------------------------------------------- Heading A,Heading B,Heading C A1,B1,C1 A2,B2,C2 A3,B3,C3 ---------------------------------------------- */ //Create an HTTPS request to send to the Google Drive API using the callApi function. function callApi() { var method = 'GET'; var body = ''; var headers = null; //Construct and send an HTTPS request to get all of the tables. return ai.https.request(url, method, body, headers); } function testConnection(context) { var response = callApi(); var responseCode = response.getHttpCode(); // Interrogate the response to check if it succeeded and that HTTP communication was successful. if (responseCode == 200) { ai.log.logInfo('Test Connection Succeeded'); return true; } else { ai.log.logError('Test Connection Failed','Response code was ' + responseCode); return false; } } function importStructure(context) { //Use the callAPI function to construct and send an HTTPS request to get all the tables var response = callApi(); //Get the structure builder object used to create tables, columns and other needed structures. var builder = context.getStructureBuilder(); var table = createTable(builder, tableName); var lines = extractLines(response); var headingLine = lines[0]; var headings = extractCells(headingLine); //parse the HTTPS response to construct a table for(var i = 0; i < headings.length; i++) { var heading = headings[i]; createColumn(table, heading); } } function importData(context) { var response = callApi(); //Use the passed-in contextual information to create a rowset object. var rowset = context.getRowset(); var lines = extractLines(response); //Skip the heading row and process each row to extract cell values for each column. for(var i = 1; i < lines.length; i++) { var line = lines[i]; if(line === '') continue; var cells = extractCells(line); //Add each row array to the rowset. rowset.addRow(cells); } } function createColumn(table, heading) { var columnId = escape(heading); var column = table.addColumn(columnId); column.setDisplayName(heading); column.setTextColumnType(1000); } function extractLines(response) { var content = response.getBody(); return content.split('\n'); } function extractCells(line) { return line.split(','); } function createTable(builder, name) { var tableId = escape(name); var table = builder.addTable(tableId); table.setDisplayName(name); return table; } //In this example, reuse the import data function with context for previewing the data. //A separate function might be needed to limit the amount of data preview gets back. function previewData(context) { importData(context); }