ということで、スクリプト使ってできそうだったのでちょっと作成してみました。
基本的に、必要な概念は、
var pars = DocumentApp.getActiveDocument().getBody().getParagraphs();
でパラグラフを取得してループを回していきます。
var hdg = par.getHeading(); if (hdg == DocumentApp.ParagraphHeading.HEADING1
ここでヘッダ1なら章番号を加算して出力するという感じでやってます。
par.setText(counterh1+'.\t'+chunks[0]);
初めて書いてみましたが、なるほどなかなか便利ですね。
コード例:
function main(){ var pars = DocumentApp.getActiveDocument().getBody().getParagraphs(); var counterh1 =0; var counterh2 =0; var counterh3 =0; for(var i=0; i < pars.length; i++) { var par = pars[i]; var hdg = par.getHeading(); if (hdg == DocumentApp.ParagraphHeading.HEADING1) { counterh1 = counterh1+1; counterh2 = 0; counterh3 = 0; var content = par.getText(); var chunks = content.split('\t') if(chunks.length > 1) { par.setText(counterh1+'.\t'+chunks[1]); } else { par.setText(counterh1+'.\t'+chunks[0]); } } else if (hdg == DocumentApp.ParagraphHeading.HEADING2) { counterh2 = counterh2+1; counterh3 = 0; var content = par.getText(); var chunks = content.split('\t') if(chunks.length > 1) { par.setText(counterh1+'.'+counterh2+'.\t'+chunks[1]); } else { par.setText(counterh1+'.'+counterh2+'.\t'+chunks[0]); } } else if (hdg == DocumentApp.ParagraphHeading.HEADING3) { counterh3 = counterh3+1; var content = par.getText(); var chunks = content.split('\t') if(chunks.length > 1) { par.setText(counterh1+'.'+counterh2+'.'+counterh3+'.\t'+chunks[1]); } else { par.setText(counterh1+'.'+counterh2+'.'+counterh3+'.\t'+chunks[0]); } } } } main();
0 件のコメント:
コメントを投稿