2019年10月6日日曜日

Google ドキュメントで章番号・節番号を付与

Google ドキュメントで見出しに章番号を付与しようといろいろ調べてみたけど標準ではそういう機能がなさそうな感じ。

ということで、スクリプト使ってできそうだったのでちょっと作成してみました。

基本的に、必要な概念は、

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 件のコメント: