Apache POI – セルにフォントを指定したコメントを設定するには
セルにフォントを指定したコメントを設定するには、フォントを指定したHSSFRichTextStringクラスで定義したコメントをCommentクラスのsetStringメソッドで設定します。
package net.tk_factory.sample.apache.poi.cell; import java.io.FileOutputStream; import java.io.IOException; import net.tk_factory.sample.AbstractSample; import org.apache.log4j.Logger; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFClientAnchor; import org.apache.poi.hssf.usermodel.HSSFComment; import org.apache.poi.hssf.usermodel.HSSFFont; import org.apache.poi.hssf.usermodel.HSSFPatriarch; import org.apache.poi.hssf.usermodel.HSSFRichTextString; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.util.HSSFColor; /** * Apache POI-HSSFを使用したサンプルプログラムです。<br/> * <br/> * <b>内容</b> * <ol type="1"> * <li>セルにフォントを指定したコメントを設定します。</li> * </ol> * @author Takafumi Kondo (TK Factory) */ public class SampleSetCellComment2 extends AbstractSample { /** クラス名 */ private static final String CLASS_NAME = SampleSetCellComment2.class.getSimpleName(); /** ロガー */ private static final Logger LOGGER = Logger.getLogger(SampleSetCellComment2.class.getName()); /** 出力ファイル名 */ private static final String OUT_FILE_NAME = SAMPLE_FILE_DIRECTORY + CLASS_NAME + "Out.xls"; /** * SampleSetCellComment2オブジェクトを構築すると、 * UnsupportedOperationExceptionがスローされます。<br/> */ protected SampleSetCellComment2() { throw new UnsupportedOperationException(); } /** * mainメソッドです。<br/> * * @param args 引数 */ public static void main(String[] args) { LOGGER.info("[START]" + CLASS_NAME); FileOutputStream out = null; try { //すでに出力ファイルが存在している場合は削除する deleteExistsFile(OUT_FILE_NAME); //ワークブックを生成する HSSFWorkbook workbook = new HSSFWorkbook(); //シートを追加する HSSFSheet sheet = workbook.createSheet(); HSSFPatriarch patriarch = sheet.createDrawingPatriarch(); //行を追加する HSSFRow row = sheet.createRow(1); //セルを追加する HSSFCell cell = row.createCell(1); //アンカーを生成する HSSFClientAnchor clientAnchor = new HSSFClientAnchor( //コメントの表示位置の微調整 //・1~1023を指定すると、コメントの開始位置が左にズレます 0, //・1~255を指定すると、コメントの開始位置が下にズレます 0, //・1~1023を指定すると、コメントの終了位置が左にズレます 0, //・1~255を指定すると、コメントの終了位置が下にズレます 0, //コメントの表示位置のインデックス //・開始位置(横) (short)4, //・開始位置(縦) 2, //・終了位置(横) (short)6, //・終了位置(縦) 5); //フォントを設定する HSSFFont font = workbook.createFont(); font.setFontName("MS ゴシック"); font.setFontHeightInPoints((short)10); font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); font.setColor(HSSFColor.RED.index); //コメントを生成する HSSFComment comment = patriarch.createComment(clientAnchor); //コメントを設定する HSSFRichTextString text = new HSSFRichTextString("コメント"); //コメントのフォントを設定する text.applyFont(font); comment.setString(text); //コメント作成者を設定する comment.setAuthor("TK Factory"); //セルにコメントを設定する cell.setCellComment(comment); //ファイルを保存する out = new FileOutputStream(OUT_FILE_NAME); workbook.write(out); } catch (IOException ioex) { LOGGER.error(getStackTrace(ioex)); } finally { try { if (out != null) { out.close(); } } catch (IOException ioex) { LOGGER.error(getStackTrace(ioex)); } LOGGER.info("[E N D]" + CLASS_NAME); } } }
関連記事
コメント 0