POIでのテキストボックス作成について

このQ&Aのポイント
  • POIでのテキストボックス作成について困っています。テキストボックス内のテキストの文字サイズ指定の方法が分からず、テキストボックスの外へテキストがはみ出して表示されます。テキストボックスのサイズを広げずにテキストをテキストボックス内に収める方法を模索しています。
  • 現在、POIでExcelファイルの操作をしている中で、テキストボックスの作成で問題に直面しています。テキストボックス内のテキストの文字サイズ指定方法がわかりません。また、テキストがテキストボックスの外へはみ出してしまうため、テキストボックスのサイズを広げずに収める方法を探しています。
  • POIを使用してExcelファイルの操作をしている際に、テキストボックスの作成がうまくいきません。具体的には、テキストボックス内のテキストの文字サイズ指定方法がわからず、テキストがテキストボックスの外へはみ出してしまいます。テキストボックスのサイズを広げずに収める方法を見つけるために、情報を探しているところです。
回答を見る
  • ベストアンサー

POIでのテキストボックス作成について

お世話になります。 現在、POIでExcelファイルの操作をしているのですが POIを使ったテキストボックスの作成で困っています。 HSSFPatriarch patriarch = workbook.getSheetAt(0).createDrawingPatriarch(); HSSFTextbox textBox = patriarch.createTextbox(new HSSFClientAnchor(0, 0, 100, 255,(short)1, 1, (short)1, 1)); textBox.setString(new HSSFRichTextString("テキストボックス内のテキスト")); 上記のようにテキストボックスを作成しているのですが テキストボックス内のテキストの文字サイズ指定の方法が分からず、 テキストボックスの外へテキストがはみ出して表示されます。 テキストボックスのサイズを広げずにテキストをテキストボックス内に 収める方法を模索しているのですがそれらしい情報が見つかりません。 よければご教示下さい。よろしくお願いいたします。

  • Java
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • public_sa
  • ベストアンサー率52% (13/25)
回答No.1

使用したことがないので はっきりとはわかりませんが。。。 HSSFRichTextString#applyFont(Font font) でいける気がしますが。 テキストボックスの幅と文字数で 適当に都度設定してやる必要は あると思いますが。

参考URL:
http://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFRichTextString.html
akahat_k
質問者

お礼

ありがとうございます! テキストボックスのオブジェクトではなく 挿入する文字列のオブジェクトに対してスタイルを指定出来たのですね。 上記の方法で無事解決出来ましたのでこれで回答を締め切らせていただきます。 本当にありがとうございました。

関連するQ&A

  • テキストボックス

    Wordでテキストボックスの中央に文字を持っていく操作を教えてください。(テキストボックスのサイズ変更ではなくて、それ以外の方法で) 宜しくお願いします。

  • テキストボックスやラベルのクリア

    下のように ボタンクリックして、新しくフォーム出て、テキストボックスに入ってた値がフォーム2で表示できますが。 今度はなかの値をクリアしたい場合はどうしたらいいですか。     Dim f As New Form2 f.Owner = Me f.Show() f.Label1.Text = TextBox1.Text f.TextBox1.Text = TextBox1.Text

  • VBAで作成したテキストボックスを

    VBAで作成したテキストボックスを ?背景色を透明に設定 ?線を無し(透明)に設定 したいと考えています。 他サイトにTextBox1.BackStyle = fmBackStyleTransparentの様な表記はあったのですが、 TextBox1の様な図形の名前を使わずに、Selection.みたいに使用したいと考えています。 当方、テキストボックスの選択も今一理解していません。 ご教授よろしくお願いいたします。 With Selection.Font .Name = "MS Pゴシック" .FontStyle = "標準" .Size = 10 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .Orientation = xlHorizontal .AutoSize = False .AddIndent = False End With

  • visual basicのテキストボックスについて

    ビジュアルベーシックでカレンダーを作ろうと考えてます。 日付のところをテキストボックスに数字を入れて、カレンダーに見立てようとしています。 でも、そのテキストボックスに値を代入するとき、一つ一つに textbox1.text=1 textbox2.text=2・・・・ と書いていくのはすごくメンドくさく、非効率的です。 今、自分が考えている解決方法は、javascriptにでてくるdocument.forms[0].elements[a].valueのようなテキストボックスなどの名前を指定しなくても値を代入する方法です。 でも、ビジュアルベーシックにこのような操作が可能なのかわかりません。 知っている方がいたら是非教えてください。

  • テキストボックスって関数?

    エクセルです。 シートにテキストボックスを置くと、数式バーに a=EMBED("Forms.TextBox.1","") が表示されるのですが、テキストボックスって関数なのでしょうか? 「EMBED」について http://office.microsoft.com/ja-jp/word-help/HP005186147.aspx を読んだのですが、良くわかりませんでした。 「ほかのアプリケーションで作成されたオブジェクトを挿入します。」 と書かれてますが、 テキストボックスは「ほかのアプリケーション」ではないですよね。 それともテキストボックスはアクティブエックスコントロールだから ほかのアプリケーションになるのでしょうか?

  • テキストボックスとスクロールバー

     VC++ 2005 Express Edition を使用しています.  テキストボックスへの文字列の(末尾への)追加を下のように行っています. vvv this->textBox1->Text = this->textBox1->Text + "\r\n" + textBox2->Text; ^^^  追加を繰り返してテキストの行数がテキストボックスの高さを越えると右端にスクロールバーが出るのですか,上の方法で追加していくとスクロールバーがテキストボックスの上辺に付いたままで,追加しているテキストを確認できません(スクロールバーの長さは小さくなっているので,文字列が追加されている,ということは分かります).  テキストの行数がテキストボックスの高さ以上になったときに,スクロールバーをテキストボックスの下辺に付ける,ということはできるのでしょうか.

  • テキストボックス内のテキストをCut & Past

    VBAで作成したユーザーフォーム上のテキストボックス内のテキストを カット アンド ペースト が出来るようにしたいのですが方法が有るのでしょうか? Word や Excel の様に 出来ると便利になるのですが どなたか ご教示くださればと思います。宜しくお願いします。

  • エクセルで作成したテキストボックスをワードに貼り付けると書式が「Tim

    エクセルで作成したテキストボックスをワードに貼り付けると書式が「Times New Roman」に変わり、上付き文字も解除されるのですが、書式を変えずに貼り付ける方法はないでしょうか?

  • テキストボックスでConfirmMessage

    お世話になっております VB.NET 2010 Windows7 Windowsフォーム画面の開発をしています ConfirmMessageのテキストボックス版を作成しようとしています 特定の文字を入れるまで処理をしないという動きを作成したいのですが、どうもできません 「Form_Closing」に、「TextBoxに"Y"が入れられれば「画面を閉じる」、"N"なら「画面は閉じない」という 処理等です イベントだけでなく、関数にも"Y"が入れられたら処理A、"N"が入れられたら処理Bという風に、 confirmの「はい」「いいえ」みたいにテキストボックスを制御したいです とりあえず、TextBoxのValidating処理に、「"Y"か"N"が入れられるまではフォーカスが抜けない」という 処理を入れ、Timerを入れました しかし、ここからがわかりません・・・ すいませんが、ご教授お願いします m(_ _)m

  • テキストボックスの書式について

    例えばセルA1の書式が、分類:日付、種類:3月14日とします。(数字は半角) この場合、セルA1に03(全角)月14(半角)日と入力しても、3月14日(数字はすべて半角)と表示されます。 マクロを作成しているのですが、セルA1とテキストボックスの書式がどうしてもうまくいきません。 セルA1はUserform1内のTextbox1の値を取得します。 しかし、Textbox1の値をセルA1へ表示させると、セルA1と同じ書式に表示されません。 テキストボックスの値は文字列として扱われているようです。 Textbox1に03(全角)月14(半角)日と入力しても、3月14日(数字はすべて半角)と表示される方法はありませんか?