來練習讀取 Google 文件中的表格內容吧。
今日要點:
》Document Service 文件服務範例
》表格內容讀取
前一天我們簡單介紹了Google 文件新增標題與表格建立,今天繼續來練習讀取表格內容 API 程式使用。我們系列主要是讀取文件中表格的內容來做資料格式轉換,所以首先我們要先可以抓取到表格欄位的內容。
表格與抓取的內容對照如下圖:
我們表格最大列數是17列(Row),最大欄數是3欄(Col),所以抓取出來的二維陣列就是 17x3 的陣列。如果有合併的欄位, 那就只有第一個有值,其他被合併的是沒有值。
我們再實驗一個小的表格讓你看的更清楚,下圖的表格裡有合併3列3欄的格子,我們的來看看陣列的值。
可以看到,合併的格子,只有最左上角的格式有值,其他都是空值。
我們程式大概分幾個部份
程式碼如下:
function get(e){
readDocById('1AvS30VgjUNSYwg_sEpOd...'); //鐵人賽 API 文件 Demo
}
function readDocById(id) {
var doc = DocumentApp.openById(id);
//取得所有的表格集合(tables)
var tables = doc.getBody().getTables();
//讀取每一個表格(table)
for (var tableIndex in tables)
{
var table = tables[tableIndex]; //取出第 n 個 table
var rows = table.getNumRows(); //取得有幾列
//讀取表格中的每一列(row)
var array = [];
for ( var rowIndex = 0; rowIndex < rows; ++rowIndex ) {
var row = table.getRow(rowIndex)
//讀取一列中的每一欄(col)
array[rowIndex] = [];
for ( var colIndex=0; colIndex < row.getNumCells(); ++colIndex) {
var celltext = row.getChild(colIndex).getText();
array[rowIndex][colIndex] = celltext;
}
}
Logger.log(JSON.stringify(array)); // debug
}
}
以上就是表格內容讀取的範例,可以抓取到表格欄位的內容後,之後就能依需要轉成特定的格式了,今天就先這樣囉。