2014-05-06 55 views
3

我正在爲Google文檔編寫腳本。 我想獲得文檔中所有標題的位置。然後我想在文檔中創建一個包含這些標題的其他鏈接列表。我不想使用TABLE_OF_CONTENTS。 我想在Word 2010中製作相似性導航面板(link)。僅限於Google文檔。 如何獲得該職位,或創建文檔中所有標題的鏈接並將其放在側邊欄中? 謝謝你的幫助!祝你今天愉快。Google文檔的導航面板

回答

1

請參閱this example。這是一個帶有腳本的Google Doc,用於創建帶有目錄的側欄。

以下是獲取標題列表的代碼。鏈接文檔的腳本編輯器中包含所有內容。

//Recursively get subsections 
function getHeadersFromParagraphs(paragraphs, limit, starter){ 
    var headers = [], header, hType, level, start, result, 
     paragraph, 
     heading, 
     i, 
     h1 = DocumentApp.ParagraphHeading.HEADING1, 
     h2 = DocumentApp.ParagraphHeading.HEADING2, 
     h3 = DocumentApp.ParagraphHeading.HEADING3, 
     h4 = DocumentApp.ParagraphHeading.HEADING4, 
     h5 = DocumentApp.ParagraphHeading.HEADING5, 
     h6 = DocumentApp.ParagraphHeading.HEADING6, 
     hTypes = [h1,h2,h3,h4,h5,h6]; 

    //Loop through all paragraphs 
    start = starter ? starter.id+1 : 0; 
    for(i = start; i < paragraphs.length; i += 1){ 
    paragraph = paragraphs[i]; 
    heading = paragraph.getHeading(); 
    level = hTypes.indexOf(heading); 

    if(level > -1 && level < limit){ 
     if(paragraph.getText() == "") continue; 
     if(starter && level <= starter.level) { i--; break; } 

     header = { name : paragraph.getText(), id : i, level : level }; 
     result = getHeadersFromParagraphs(paragraphs, limit, header); 
     i = result.index; 
     header.subheaders = result.headers; 
     headers.push(header); 
    } 
    } 
    return { headers : headers, index : i } 
} 

//Initiate parsing of headers. By default, limit to Heading 1. 
function pullHeaders(level){ 
    level = level || 1; 
    var body = DocumentApp.getActiveDocument().getBody(), 
     paragraphs = body.getParagraphs(); 
    var result = getHeadersFromParagraphs(paragraphs, level); 
    return JSON.stringify(result.headers); 
} 
+0

如何使用它? 我想我不能在文件中使用JavaScript代碼.gs http://prntscr.com/3gqzx8 –

+0

你能幫我把它用在我的文檔上,我會非常感謝你。你是一個好人。 –

+0

我應該更清楚 - 上面的代碼在文檔中創建一個標題列表。鏈接文檔中有額外的代碼來創建側邊欄。 – Fred

2

此時此答案可能已過時,但在Google文檔中有一個Add on,允許您這樣做。只需單擊「插件」並搜索「目錄」或「文檔導航器」 - 您會發現添加項會爲您生成如您所描述的導航欄。可能還有其他附加功能在做同樣的事情.....

9

因爲Google已經接受了此功能並且在09/03/2016發佈了它,所以您不再需要使用第三方附加組件。

只需檢查Tools > Document outline選項,你很好去。

+0

謝謝!這正是我需要的! – Alexandr