1

openoffice Writer でテーブルの行をプログラムで複製する必要があります。

を介して行を追加することは難しくありません。これによりtable.Rows.insertByIndex(idx, count)、空の行が追加さDataArrayれ、CellRange. このようにすると、セルのスタイルを制御できなくなります。特に、セルに異なるスタイル (太字/斜体) の単語が含まれている場合、それらは同じ面に平らになります。必要なのは、セル/行内の各単語のスタイルを保持する方法で行を複製することです。

これは、openoffice ( http://oootemplate.argolinux.org )を使用する Python テンプレート システムの最後のステップです。Python の uno インターフェイスを介してドキュメントにアクセスしますが、その背後にあるロジックを説明するにはどの言語でもかまいません。

4

1 に答える 1

5

解決策は、コントローラのメソッド .getTrasferable() を使用して ViewCursor からデータを取得することです。そのため、ビュー カーソルを制御してすべてのセルに配置する必要があります (ViewCursor を複数のセルにまたがらせることはできませんでした)。転送可能なものを取得したら、目的地にカーソルを置いて挿入します。

  desktop = context.ServiceManager.createInstanceWithContext("com.sun.star.frame.Desktop", context)
  document = desktop.loadComponentFromURL("file://%s/template-debug.odt" % os.getcwd() ,"_blank", 0, ())
  controller=document.getCurrentController()
  table = document.TextTables.getByIndex(0)
  view_cursor=controller.getViewCursor()


  src = table.getCellByName(src_name)
  dst = table.getCellByName(dst_name)

  view_cursor.gotoRange(src.Text, False)
  txt = controller.getTransferable()
  view_cursor.gotoRange(dst.Text, False)

  controller.insertTransferable(txt)
于 2011-01-04T16:54:57.943 に答える