首页 > 解决方案 > 元素必须分离

问题描述

我正在阅读 Google 表格文件并合并到 Google 文档中。

模板有一个表格,替换文本的第一行有一个表格。下一行没有表结构,我想追加表直到没有更多记录。

描述

  1. refer-doctor-data-new 要合并的数据源(每月-q)工作表被定义为将字段复制到谷歌文档
  2. accounting-monthly-statement-template 用作模板<<variable>>
  3. monthly-statement 合并后的文档

概述是模板定义了要从推荐医生数据新谷歌表中获取的字段。每月 q 工作表是最终合并文档的格式。我想获取推荐医生在 Google Doc 组中显示的所有详细交易。完成所有必需的计算和查询

问题:

将 Goolge Sheet 的文件合并到 Goolge Doc 的示例文件

请告知如何与元素分离。

这些行有错误

  // if second row of data
       body.appendTable(element).appendTableRow()
       .appendTableCell("EXAMDATE")
          .appendTableCell("VISITNO")
          .appendTableCell("PATNAME")
          .appendTableCell("PROC NAME")
          .appendTableCell("NET");


完整代码

 ///end of mail merge
  function copy() {
    var docid=""  //merge template
var docfinalid="";//merge final doc
var sheetid="";   //raw sheet
var ss=SpreadsheetApp.openById(sheetid).getSheetByName("monthly-q"); 
 //var data=ss.getRange("B11:T").getValues(); // from raw table
var data=ss.getRange("A3:G").getValues(); // from monthly-q table  
var refdoc=ss.getRange("J:J").getValues() ;//get ref doc list, unique
    for (var i=0;i<refdoc.length;i++ ){
       var formula="=QUERY(raw!B10:T,\"Select C,D,H,L,M,T where M='"+refdoc[i]+"'\")";
       var qformula=ss.getRange("A2").setFormula(formula);
       data.length=0;
       data=ss.getRange("A3:G").getValues();

      
         data.forEach(function(r){
            var inv=ss.getRange("B1").getValue();//self-define invoice code
       merge(inv,"31-01-2020",r[4],"TEMPADD",r[0],r[1],r[2],r[3],r[5],r[6]);
            inv=inv+1;
 
   });
         }

 
    
  }// end of copy function 
    
  function merge(inv,date,drname,add,examdate,visitno,patname,procname,net,total) {
      var docid=""  //merge template
var docfinalid="";//merge final doc
var sheetid="";   //raw sheet
var ss=SpreadsheetApp.openById(sheetid).getSheetByName("raw"); 
    var doc=DocumentApp.openById(docid);
  var sourceDoc = doc.getBody();

  var targetDoc = DocumentApp.openById(docfinalid);
  var totalElements = sourceDoc.getNumChildren();
    targetDoc.getBody().appendPageBreak();
   //get Yr from date
    //get Month from date
 
  for( var j = 0; j < totalElements; ++j ) {
    var body = targetDoc.getBody();
    var element = sourceDoc.getChild(j).copy();
    var type = element.getType();

    if( type == DocumentApp.ElementType.PARAGRAPH ){
      body.appendParagraph(element).replaceText("<<inv>>", inv)
                                      .replaceText("<<Date>>", date)
                                      .replaceText("<<Dr Name>>", drname)
                                      .replaceText("<<Address>>", add);

                           
    }
    else if( type == DocumentApp.ElementType.TABLE){
      body.appendTable(element).replaceText("<<Exam Date>>", examdate)
                                      .replaceText("<<Visit No>>", visitno)
                                      .replaceText("<<Patient Name>>", patname)
                                      .replaceText("<<Procedure Name>>", procname)
                                      .replaceText("<<Net Amount>>", net)
                                      .replaceText("<<Total>>", total);
      //second row of data
   
        var test=element.getParent();
 debugger;
      
     // if second row of data
       body.appendTable(element).appendTableRow()
       .appendTableCell("EXAMDATE")
          .appendTableCell("VISITNO")
          .appendTableCell("PATNAME")
          .appendTableCell("PROC NAME")
          .appendTableCell("NET");
        
    
     
    
      
      
      }else if( type == DocumentApp.ElementType.LIST_ITEM){
      body.appendListItem(element);
      }
//    ...add other conditions (headers, footers...
    inv++;
    }
  targetDoc.saveAndClose();
    
}
  

我有一个从 GoogleSheet Merge 到 Google Doc 的数据列表参考在 此处输入链接描述 我无法解决问题

带有数据行的 Google 表格 合并的谷歌文档

元素需要分离

标签: google-apps-scriptgoogle-sheetsgoogle-docsmailmerge

解决方案


推荐阅读