【问题标题】:how to keep two google drive document sync in part?如何保持两个谷歌驱动器文件部分同步?
【发布时间】:2014-01-11 12:23:40
【问题描述】:

背景: 我需要不断更新包含我的介绍的 doc2 编辑 doc1。

  • doc1.doc 包含我的介绍
  • doc2.doc 包含我的其余内容

示例:

  • doc1.doc

简介
这是我的介绍

  • doc2.doc

简介
这是我的介绍 //// 来自 doc1.doc

主要内容
这是我的介绍

【问题讨论】:

    标签: google-apps-script google-drive-api google-apps google-drive-realtime-api


    【解决方案1】:

    据我所知,您只能使用 Google Apps 脚本来实现这一点(想想 Google Docs 的 Visual Basic 宏)。

    你可以:

    doc1.doc 包含您的介绍

    doc2.doc 包含您的内容

    然后创建一个 Google Apps 脚本,从每个脚本中获取文本并更新一个包含简介和内容的 doc3.doc。这是一个链接,可帮助您开始使用适用于 Google 文档的 Google Apps 脚本 (https://developers.google.com/apps-script/guides/docs)

    编辑 - 添加了一些示例代码。 (我刚刚浏览了教程并创建了这个,我仍然建议您浏览该链接上的教程,它们非常有用)。希望这对您有所帮助。

    示例代码:

    function createMergeDocument() {
    
      // Links to your documents
      var mergedUrl = 'https://docs.google.com/document/d/1ZZw990dzElGWxEmE7A6Vq9Zs7CKVWd-olzTBQpTJko4/edit?usp=sharing';
      var introUrl = 'https://docs.google.com/document/d/1WDvWEiS-JmA1ZbDvgq7z5Gt6sLGFfD8oyDm6zoYCwQw/edit?usp=sharing';
      var contentUrl = "https://docs.google.com/document/d/1k0eetLMr4yBxJCTmeq4AAQYwX5EYQopyMXOtMWS2LEY/edit?usp=sharing";
    
      // Open your merged doc
      var doc = DocumentApp.openByUrl(mergedUrl);
    
      // Clear doc
      doc.getBody().setText("");
    
      // Get paragraphs from other documents
      var introText = getDoc(introUrl);
      var contentText = getDoc(contentUrl);
    
      // Add intro paragaphs
      for(var i=0; i < introText.length; i++) {
        doc.getBody().appendParagraph(introText[i].copy());
      }
    
      // New line
      doc.getBody().appendParagraph("");
    
      // Add content paragraphs
      for(var i=0; i < introText.length; i++) {
        doc.getBody().appendParagraph(contentText[i].copy());
      }
    }
    
    function getDoc(url) {
      var introDoc = DocumentApp.openByUrl(url);
    
      return introDoc.getBody().getParagraphs();
    
    }
    

    【讨论】:

    • 我已经知道了,但我一直在寻找这样的脚本。
    • 更新了示例代码。请注意,当您需要创建主文档时,您需要运行第一个函数,它们不会自动同步。但是,您可以创建一个触发器,以便每当更改介绍或内容文档时,脚本就会运行。
    • 没问题@Emergento
    猜你喜欢
    • 1970-01-01
    • 2012-09-09
    • 2023-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多