Top > OOobbs2 > 155

OOobbs2/155 Edit

  • サマリ: ドキュメント間のシートの挿入(Java)
  • 環境: Calc
  • 状態: 解決
  • 投稿者: 初級Javaかき2?
  • 投稿日: 2008-11-10 (月) 13:38:30

質問 Edit

複数のドキュメントから1シートずつ取り出し、 1つのドキュメントに挿入するプログラムを 作ろうとしています。

ドキュメント間コピー(OOobbs2/152)を応用して作っていたのですが、 挿入先のドキュメント内にあるシートを上書きしてしまい うまくいきません。

ドキュメント間のシート挿入は別の方法なのでしょうか?

回答 Edit

  • OOobbs2/152には二通りの方法が書いてありますが、どちらで行っているのか分かりません。シートリンクでは指定したシートに対してリンクを設定するので、同じシートにリンクを指定しない限り上書きされることはありません。また、dispatch で選択、コピー、貼り付けを行う場合には貼り付け先はいつもアクティブシートになります。アクティブシートを切り替えてから貼り付ける必要があります。 -- はにゃ? 2008-11-10 (月) 16:30:03
  • シートリンクのほうで行っています。別シートを指定し、設定しているのですが、最後にリンクしたシートのみが保存された状態になってしまいます。 -- 初級Javaかき2 2008-11-10 (月) 16:43:53
  • 以下のようなマクロで試してみましたが問題ありませんでした。シートを挿入していないんじゃないでしょうか・・・?
Sub sheet_link_1a
 oNewDoc = StarDesktop.loadComponentFromURL( _
    "private:factory/scalc", "_blank", 0, Array() )
 
 oSheets = oNewDoc.getSheets()
 
 
 sDocs = Array("1", "2")
 
 For i = 0 To UBound(sDocs) step 1
 sDocName = sDocs(i)
 For j = 1 To 3 step 1
 oSheets.insertNewByName(sDocName & CStr(j), 0)
 oSheet = oSheets.getByIndex(0)
 oSheet.link( _
     "file:///E:/usr/" & sDocName & ".ods", _
     "Sheet" & CStr(j), _
     "", _
     "", _
     com.sun.star.sheet.SheetLinkMode.NORMAL )
 
 oSheet.setLinkMode( _
   com.sun.star.sheet.SheetLinkMode.NONE )
 Next
 Next
 oNewDoc.storeAsURL("file:///E:/usr/out.ods", Array())
End Sub
  • はにゃ? 2008-11-10 (月) 17:06:54
  • シートは挿入しているのですが・・・。マクロではなくJavaで書いているからでしょうか? -- 初級Javaかき2 2008-11-10 (月) 18:05:27
  • ソースを見ていないので理由は分かりませんが、Java は関係ないと思います。 -- はにゃ? 2008-11-10 (月) 18:29:56

感想,コメント,メモ Edit

  • 原因がわからないのですが、シートリンクの処理がうまく動かないようです。(OOobbs2/152)の処理もまともに動かなくなってしまいました。dispatchで処理すると上手く動きました。シートリンクの異常の原因を探す時間が無いので、これで解決とさせていただきます。 -- 初級Javaかき2 2008-11-11 (火) 15:19:20


Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes