
POIのHSSFについてお教えください。
JDK1.5.0_12 / poi-3.0.2を使用しています。
フォントは、デフォルトでは "Arial" なので、セル毎に"MS 明朝"を指定すると、初めはMS明朝に変更できたのですが、そのうち"表示形式を追加できません。" とエクセルに表示され、エクセルが開けなくなりました。調べると、ブックに含まれるセルの書式の組み合わせが約 4,000 を超える場合に発生し、すべてのセルに同じフォントを使用すると、書式設定の組み合わせ数が減少するとのこと。HSSFで、デフォルトのフォントをワークブックまたはシート指定で直接変更することはできるのでしょうか。
下記が、今回のコードの一部です。
HSSFWorkbook wb = new HSSFWorkbook();
HSSFFont font1 = wb.createFont();
font1.setFontName("MS 明朝");
を指定し、以下を、行毎に、セルの数だけ(CellPositionを変動)繰り返しました。
HSSFCell cell = row.createCell((short)CellPosition);
HSSFCellStyle style1 = wb.createCellStyle();
style1.setFont(font1);
cell.setCellStyle(style1);
宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
セルの数だけスタイルを作成するのではなく、
ループ処理の外で、必要な種類のスタイルを宣言して
流用すれば良いのではないでしょうか?
※↓をループの外に置く。
> HSSFCellStyle style1 = wb.createCellStyle();
> style1.setFont(font1);
この回答への補足
kotecho様 回答ありがとうございます。
>HSSFCellStyle style1 = wb.createCellStyle();
>style1.setFont(font1);
は、ループの前に指定できるのですが、
この2行の指定だけでは、書体が変更されず、
>HSSFCell cell = row.createCell((short)cellPosition);
>cell.setCellStyle(style1);
を指定して、初めて書体が変更されるようでする。
この形式ですと、「cell」は、ループの中で個別に
指定することになってしまいます。
kotecho様
大変失礼致しました。
上記指定で再度テストしましたら、
13列×2000行のエクセル作成で
「MS 明朝」に全項目変更できました。
色々テストしたつもりだったのですが、
ループの中のに、
>HSSFCellStyle style1 = wb.createCellStyle();
>style1.setFont(font1);
が残ったままだったのかと思われます。
不完全なチェックまののでの問合せで
申し訳ございませんでした。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルの数式で教えてください。 1 2023/07/31 15:49
- Excel(エクセル) Excel 、この式はどのように解釈すればいいのでしょうか 4 2023/02/03 08:53
- Excel(エクセル) Excelマクロ(VBA)CELL形式とA1形式の使い分け 6 2022/08/27 23:35
- Excel(エクセル) エクセル2013「次のページ数に合わせて印刷」が小さすぎる 9 2023/03/28 10:18
- 政治 私の発明した「二階建て漢字」は使えるでしょうか? 3 2023/02/08 16:40
- その他(プログラミング・Web制作) Pythonを勉強しています。 5 2023/08/25 09:51
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/01/20 16:37
- Excel(エクセル) エクセルの数式について教えてください。 2 2023/03/04 09:54
- Visual Basic(VBA) エクセル365のVBAで困っています。どう修正したらよいか添削をお願いします 2 2023/05/03 17:35
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで年月日データから下二桁...
-
エクセルのセルが縦方向にのびる
-
エクセル 関数 セルの値が0...
-
Excelで来月以降の日付のセルを...
-
セルA1とB1の数値が一致しな...
-
EXCEL:フォントがなぜか透明
-
エクセルのセルに「=A13」...
-
エクセルで名簿作り・・均等割...
-
おねがいします>< エクセルで...
-
Excelで、セル内改行もそっくり...
-
Excel 「選択範囲で中央」に設...
-
勤務時間を10進法で合計を出したい
-
エクセルで文字の上に重ねがき...
-
Excelで2進数の表示
-
【Excel】セルの中の文字の下の...
-
エクセルでセルに何も入力して...
-
セル入力は出来るけど、書式設...
-
エクセルで、文章の右端をそろ...
-
エクセルでシート保護してもフ...
-
横書きで縦の波線の書き方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで年月日データから下二桁...
-
エクセルで特定のセルを表示の...
-
Excelで来月以降の日付のセルを...
-
エクセルのセルが縦方向にのびる
-
Excelで、セル内改行もそっくり...
-
Excelの条件付き書式で、計算式...
-
エクセルでセルに何も入力して...
-
エクセル 関数 セルの値が0...
-
エクセルのセルに「=A13」...
-
エクセルで文字の上に重ねがき...
-
エクセルで勝手に表示された打...
-
EXCEL:フォントがなぜか透明
-
ワードの表の中に文字を入れる...
-
セルA1とB1の数値が一致しな...
-
concatenate関数で片方のセルの...
-
横書きで縦の波線の書き方
-
【Excel】セルの中の文字の下の...
-
エクセル「折り返して全体を表...
-
おねがいします>< エクセルで...
-
条件付き書式 特定の年だけに適...
おすすめ情報