2012-11-09 49 views
3

我試圖從模板文件中生成Google文檔中的報告。當它複製文檔時,它會將所有格式重置爲用戶的默認格式,而不是原始文檔中的格式。我嘗試了以下嘗試,並設置格式上的兩個文件,tablerow的和TableCell的水平時創建報表的行間距爲1.5且有設置行格式設置setAttribute(),line_spacing,SPACING_AFTER,SPACING_BEFORE

var style = {}; 
style[DocumentApp.Attribute.SPACING_AFTER] =0; 
style[DocumentApp.Attribute.SPACING_BEFORE] =0; 
style[DocumentApp.Attribute.LINE_SPACING]=1; 

var newrow= tables[2].insertTableRow(n).setBold(false).setAttributes(style); 
    if(j==0){ 
    newrow.insertTableCell(0,reportDate).setPaddingBottom(0).setPaddingTop(0).setAttributes(style); 
    } 
    else{ 
    newrow.insertTableCell(0,'').setPaddingBottom(0).setPaddingTop(0).setAttributes(style); 
    } 
    newrow.insertTableCell(0,values1[rowId1][1]+' '+values1[rowId1][2]).setPaddingBottom(0).setPaddingTop(0).setAttributes(style); 
    newrow.insertTableCell(0,'').setPaddingBottom(0).setPaddingTop(0).setAttributes(style); 
    doc.editAsText().setAttributes(style); 

任何建議在段落後,雖然空間如何讓報告遵循這些屬性?

+0

你可以分享如何複製文檔嗎?也許有些東西會出現錯誤。 –

+0

var file = DocsList.getFileById('1DIfn_wVpXSI4hU5zG43Fvp2ZdpUP_KqgtgFRT9NWJ7E'); var newFile = DocsList.copy(file,ename +' - '+ reportDate +'Monthly Report'); var a = newFile.getId(); var doc = DocumentApp.openById(a); – user1809924

+1

我仍然無法看到這個問題。我只是嘗試使用上面的代碼複製一個「模板」文件,它保留了所有原始格式,包括行間距。您的問題是您無法通過Apps Script獲得想要的格式,或者當您複製文件時格式(間距)會丟失? –

回答

1

由於組屬性沒有設置的屬性,你可以不投任何元素爲段落我通過獲取的所有段落,並通過在月底

添加此手動設置他們解決了這個問題
var p=doc.getParagraphs(); 
    for(i=0;i<p.length; i++){ 
    p[i].setLineSpacing(1).setSpacingAfter(0); 
0

用戶是否需要能夠編輯報告或只查看它?爲什麼不生成pdf?每次我完成它,它都會保存格式。

var file = DocsList.getFileById('1DIfn_wVpXSI4hU5zG43Fvp2ZdpUP_KqgtgFRT9NWJ7E'); 
var newFile = DocsList.copy(file, ename+'-'+reportDate+'Monthly Report'); 
var report=DocsList.createFile(newFile.getAs("application/pdf")).rename(newFile.getName() + ".pdf"); 
var a = report.getID(); 
var doc = DocumentApp.openById(a); 
0

我相信SPACING_AFTER,SPACING_BEFORE & LINE_SPACING不是與TABLE_CELL對象關聯的屬性。您必須參考子欄目以設置這些。

var style = {}; 
    style[DocumentApp.Attribute.SPACING_AFTER] =0; 
    style[DocumentApp.Attribute.SPACING_BEFORE] =0; 
    style[DocumentApp.Attribute.LINE_SPACING]=1; 

    var newrow = tables[2] 
    .insertTableRow(n) 
    .setBold(false); 

    if (j == 0) { 
    newrow.insertTableCell(0,reportDate) 
     .setPaddingBottom(0) 
     .setPaddingTop(0); 
    } 
    else { 
    newrow.insertTableCell(0,'').setPaddingBottom(0).setPaddingTop(0); 
    } 
    newrow.insertTableCell(0,values1[rowId1][1]+' '+values1[rowId1][2]) 
    .setPaddingBottom(0) 
    .setPaddingTop(0); 
    newrow.insertTableCell(0,'') 
    .setPaddingBottom(0) 
    .setPaddingTop(0); 
    var newrowTableCell = newrow.getChild(0); 
    var newrowParagraph = newrowTableCell.getChild(0).setAttributes(style);