Top > OOobbs > 95

OOobbs/95 Edit

  • サマリ: CalcでUnicodeのテキストファイルの保存方法について
  • 環境: Calc
  • 状態: 解決
  • 投稿者: 中村屋?
  • 投稿日: 2006-03-16 (木) 22:26:55

質問 Edit

初めまして。

シート上から文字列を取得して、それをUnicode形式のTxtファイルに保存したいのですが、 ヘルプには、String型はデフォルトでUnicodeだとあったので、

Open FileName For Output As #hFile

もしくは、Variant型にしてから

Open FileName For Binary As #hFile

で保存しても、Shit_jis形式でしか保存できません。

エクセルVBAでは、String型をByte型にしてBinatyで保存すれば、 いけるようなのですが、Calcでは無理なのでしょうか。 良い方法をご教授願えないでしょうか。

回答 Edit

  • テキストファイルへ書き出す場合には,OOoBasic のランタイム関数を用いるより,OOoAPI のサービスを利用してやるとエンコード指定できます。

OOoBasic/Generic/textfile のページでテキストファイルの読み込みと書き込みについて取り上げています。これを使用するには,OOoBasic/Generic/file で取り上げているファイルへのアクセスを用いる必要があります。

Sub Main
Dim sUrl As String
sUrl = ConvertToUrl("C:/Temp/text.txt")
Dim oFileAcc As Object
Dim oOutputStream As Object
  oFileAcc = CreateUnoService("com.sun.star.ucb.SimpleFileAccess")
  oOutputStream = CreateUnoService("com.sun.star.io.TextOutputStream")

Dim vData As Variant
  vData = oFileAcc.openFileWrite(sUrl)
  oOutputStream.setOutputStream(vData)

  oOutputStream.setEncoding( "UTF-8" )

Dim oSheet As Object
Dim sString As String
oSheet = ThisComponent.getSheets().getByIndex(0)
sString = oSheet.getCellByPosition(0, 0).getString()
oOutputStream.writeString( sString )

oOutputStream.closeOutput()
End Sub
  • はにゃ?? 2006-03-17 (金) 08:42:49
  • はにゃ?? 2006-03-17 (金) 16:35:21


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