###前提・実現したいこと
使用言語:C# 環境:VisualStudio2015
NPOIを使用し、図形の中に文字を入力してExcel(.xls)に出力したいです。
その際に、入力した文字の位置を水平方向、垂直方向に動かして出力したいのですが、やり方がわからずに困っています。
図形に文字を入れて出力することはできたのですが、どうやって文字の位置を変更したらよいのかがわかりません。
よろしくお願いします。
###発生している問題・エラーメッセージ
図形内の文字の位置(水平方向、垂直方向)が変更できない。(左寄せなど)
###該当のソースコード
C#
1using System; 2using System.IO; 3using NPOI.SS.UserModel; 4using NPOI.HSSF.UserModel; 5using NPOI.HSSF.Util; 6using static NPOI.HSSF.Util.HSSFColor; 7 8namespace Sample{ 9 class Program { 10 static void Main() { 11 string fName = string.Format("shape_test_{0}.xls", DateTime.Now.ToString("yyyyMMddHHmmss")); 12 try { 13 //ワークブックを生成 14 HSSFWorkbook workbook = new HSSFWorkbook(); 15 16 //シートの追加 17 HSSFSheet sheet = workbook.CreateSheet("Sheet") as HSSFSheet; 18 19 HSSFPatriarch patriarch = sheet.CreateDrawingPatriarch() as HSSFPatriarch; 20 21 HSSFClientAnchor clientAnchor; 22 HSSFSimpleShape shape; 23 //クライアントアンカーを生成する 24 clientAnchor = new HSSFClientAnchor( 25 0, 0, 0, 0, (short)2, 12, (short)6, 16); 26 27 //円を描画 28 shape = patriarch.CreateSimpleShape(clientAnchor); 29 shape.ShapeType = HSSFSimpleShape.OBJECT_TYPE_OVAL; 30 31 //塗りつぶし色を設定 32 shape.SetFillColor(System.Drawing.Color.YellowGreen.R, System.Drawing.Color.YellowGreen.G, System.Drawing.Color.YellowGreen.B); 33 //枠線の色を設定 34 shape.SetLineStyleColor(255, 0, 0); 35 //枠線の幅を設定 36 shape.LineWidth = HSSFSimpleShape.LINEWIDTH_ONE_PT * 1; 37 //枠線の種類を設定 38 shape.LineStyle = (LineStyle)LINE_STYLE[5]; 39 40 //文字を図形内に入れる 41 shape.String = new HSSFRichTextString("おはようおはよう"); 42 43 44---------------------------------------------------------------------------------- 45 ここに文字の位置の設定を追加 46---------------------------------------------------------------------------------- 47 48 //ファイルを保存する 49 using (var fs = new FileStream(fName, FileMode.Create)) { 50 workbook.Write(fs); 51 fs.Close(); 52 } 53 54 } 55 catch (Exception ex) { 56 Console.WriteLine(ex); 57 } 58 }
###試したこと
HSSFSimpleShapeやHSSFShapeの中を探しても、位置情報の設定が見当たりませんでした。
回答よろしくお願いします。
あなたの回答
tips
プレビュー