生成

1

我通過SquareSpace做了一個網頁,爲當地的體育陣營的電子表格數據的行文件的頁面,註冊頁面保存所有記錄到電子表格谷歌雲端硬盤中。我想將文檔從該電子表格轉換:生成

1. name  | currentgrade | parentorguardianname 
2. Joe Smith |   7 | Mike Smith 
3. Jenny Lee |   5 | Janet Lee 

爲此在谷歌文檔

Name: Joe Smith 
Grade: 7 
Parent: Mike Smith 

<page break> 

Name: Jenny Lee 
Grade: 6 
Parent: Janet Lee 

我需要那麼他們是可讀重命名的標題在文檔,然後在每一行使用它們,並在每一行之間分頁。我去年完成了這一工作,將整個文件複製到我的桌面,將其轉換爲excel,並使用宏以正確的格式轉換爲另一張紙。我沒有自己編寫宏(只是編輯每列的循環),但今年我想嘗試做到這一點,所以他們可以自己前進。我從來沒有寫過這樣的代碼,但是我有一些編碼經驗,所以學習會很有趣。

+2

在電子表格中,這是你怎麼能在一個範圍內獲取值:HTTPS://developers.google.com/apps-script/reference/spreadsheet/sheet#getrangerow-column- numRows行,爲numColumns 這就是如何在一個文檔中插入的信息:https://developers.google.com/apps-script/reference/document/paragraph 你的問題太廣,你應該對代碼工作,然後詢問你是否有任何具體問題。檢查這個文檔:http://stackoverflow.com/help/how-to-ask – Gerardo

+0

我知道它是開放式的,但我不知道從哪裏開始。他給了我一個這樣做的好地方。謝謝! – kroe761

回答

1

Pinoyyid是正確的,你所描述一個基本的郵件合併,並有大量的爲實現你的要求選擇。

然而,這還需要一個工具,你應該在你的工具箱中的排序任務!調換標籤數據行到事情是一種常見的操作與谷歌表打交道時,所以這個基本功能可以形成許多更重要的事情的基礎。

spreadsheet

var docId = '--document id--'; 

/* 
* Replace content of a document with the current data in spreadsheet. 
* Each row of data will occupy one page in the document. 
* Header row from spreadsheet will provide data labels in document. 
*/ 
function RowsToDoc() { 
    // Get all sheet contents, remove header row 
    var data = SpreadsheetApp.getActiveSheet().getDataRange().getValues(); 
    var headers = data.splice(0, 1)[0]; 

    // Open document and prepare to write 
    var doc = DocumentApp.openById(docId); 
    var body = doc.getBody(); 
    body.clear(); 

    // Loop over every row in sheet, adding pages to document 
    for (var row=0; row<data.length; row++) { 
    // Insert page break exept on first page 
    if (row>0) 
     body.appendPageBreak(); 
    // Loop over all columns, writing "Data Label: Data" 
    for (col = 0; col<headers.length; col++) { 
     body.appendParagraph(headers[col] + ": " + data[row][col]); 
    } 
    } 
} 
+0

如何做到這一點,但爲每一行創建一個新的文檔? –