ということで、スクリプト使ってできそうだったのでちょっと作成してみました。
基本的に、必要な概念は、
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 件のコメント:
コメントを投稿