我通过SquareSpace为当地体育营创建了一个网页,注册页面将所有条目保存到云端硬盘中的Google电子表格中。我想在电子表格中转换文档:
1. name | currentgrade | parentorguardianname
2. Joe Smith | 7 | Mike Smith
3. Jenny Lee | 5 | Janet Lee
在Google Doc
中使用此功能Name: Joe Smith
Grade: 7
Parent: Mike Smith
<page break>
Name: Jenny Lee
Grade: 6
Parent: Janet Lee
我需要重命名文档中的标题,以便它们可读,然后在每一行上使用它们,并在每一行之间分页。我在去年通过将整个文件复制到我的桌面,将其转换为excel,并使用宏转换为正确格式的另一个工作表来实现了这一目标。我自己没有编写宏(只编辑了每一列的循环),但是今年我想尝试这样做,这样他们就可以自己动手了。我从来没有写过这样的代码,但我有一些编码经验,所以学习起来很有趣。
答案 0 :(得分:1)
Pinoyyid是对的,你已经描述了一个基本的邮件合并,并且有很多选项可以完成你的要求。
但是,这也是一种需要工具箱中应有工具的任务!在处理Google表格时,将标记数据行转换为 Things 是一种常见的操作,因此这个基本功能可以构成许多更大事物的基础。
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]);
}
}
}
答案 1 :(得分:0)