2014-01-16 146 views
1

我对Google文档和Google Apps脚本有疑问。使用Google云端硬盘和Google Apps脚本自动生成日历文档

是否可以使用Google Apps脚本'自动'在Google Drive中创建日历文档,并具有以下文档功能。

  • 传统万年历表
  • 准确的年份和月份抽穗期
  • 精确地放置在正确的日期列

See example

我知道谷歌Apps脚本可以自动创建文件和添加内容。我只是不确定它能够“自动”和“准确地”将日期放置在正确的位置。如果我所追求的目标不是一种选择,我不想开始这条路。

+0

我敢肯定这是完全可行的,虽然不是很容易的......如果我有我会忍不住去尝试的乐趣:-) –

+2

就是“谷歌日历驱动文件”更多的自由时间硬要求?如果是这样,为什么?我认为使用Google日历会容易得多,因为您可以利用日历服务(https://developers.google.com/apps-script/reference/calendar/)。 Google日历可以与任何Google云端硬盘文档一样与您的通讯录分享... –

+0

@DanielBank,是的。我正在为其他教师在教学网站上使用此工作。谷歌文档使他们很容易嵌入他们的网站和更新链接(其他网站和文件)。我知道Google日历的大部分功能,我不相信您可以轻松地将链接添加到URL的事件中。 –

回答

1

我很快把它扔在一起,但你应该可以很容易地修改它。通过获取每月第一天的星期几,然后将日期插入到二维数组的相应单元格中,您可以获取日期以显示在右侧列中。然后将数组作为表格插入。

function create_cal() { 
    var doc = DocumentApp.create("Calendar"), 
     body = doc.getBody(), 
     cells = [ 
     ['','','','','','',''], 
     ['','','','','','',''], 
     ['','','','','','',''], 
     ['','','','','','',''], 
     ['','','','','','',''], 
     ['','','','','','',''] 
     ], 
     now = new Date(), 
     date = new Date(now.getFullYear(), now.getMonth(), 1), 
     cur_month = now.getMonth(), 
     row = 0, 
     col = date.getDay(); 

    while (cur_month == date.getMonth()) { 
    cells[row][col] = date.getDate(); 

    col += 1; 
    if (col > 6) { 
     col = 0; 
     row += 1; 
    } 

    date = new Date(date.getTime() + 1000*60*60*24); 
    } 
    body.setText('Calendar Name'); 
    body.appendTable(cells); 
} 
+0

谢谢@lagomorpho!我会在周末玩这个。 –

+0

这一个在Google文档中生成一个不错的日历。我正在寻找这样在Google电子表格中生成日历的东西。我将使用这个部分 – Richard

相关问题