質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

2313閲覧

エクセル出力するとき値が空になってしまうシートがでてくる

aki.M

総合スコア13

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2017/03/10 01:53

javaでエクセルに計算した値を出力したいのですが、2sheet目の値が全て出力されません。

1sheet目は各sheetの合計を計算しているので2sheet目からデータを出力したいのですが、2sheet目が空になり3sheetから9sheetは出力されています。引数で渡しているデータの値は入っていました。

宜しくお願い致します。

// テンプレートからワークブックを取得 HSSFWorkbook workBook = ChohyoCommon.getWorkBook(cellIndexList.get(0).getTemplateNm(), getLogger()); // 集計期間(全シート共通) String scopeString = ChohyoCommon.toYmString(fromYm); if (!ShukeiKikanConstants.TOGETSU.getCd().equals(scope)) { scopeString = scopeString + "~" + ChohyoCommon.toYmString(ym); } //------------------------------------- // 全社計シート //------------------------------------- HSSFSheet sheet = workBook.getSheet("全社計"); sheet.getRow(0).getCell(1).setCellValue(scopeString); //------------------------------------- // 各部店ごとのシート //------------------------------------- for (int i = 0; i < ChohyoConstants.BUTEN_CD_ARRAY.length; i++) { String butenCd = ChohyoConstants.BUTEN_CD_ARRAY[i]; HanbaiJissekiChosahyoEntity entity = map.get(butenCd); if (entity != null) { sheet = workBook.getSheetAt(i); createSheet(sheet, scopeString, entity); } } workBook.setForceFormulaRecalculation(true); // 保存ファイル名 String fileName = ChohyoConstants.CHOHYO_HANBAI_JISSEKI_CHOSAHYO + "(" + ym + ")(" + ShukeiKikanConstants.getName(scope) + ")"; return ChohyoCommon.writeWorkbook(workBook, fileName, getLogger()); } private void createSheet(HSSFSheet sheet, String scopeString, HanbaiJissekiChosahyoEntity entity) { // 集計期間 sheet.getRow(0).getCell(1).setCellValue(scopeString); Map<String, HanbaiJissekiChosahyoItem> kojiSunmateMap = entity.getKojiSunmateMap(); Map<String, HanbaiJissekiChosahyoItem> kojiNotSunmateMap = entity.getKojiNotSunmateMap(); for (int i = 0; i < KOJI_SHUBETSU_ARRAY.length; i++) { // 5行目(index=4)から設定開始 HSSFRow row = sheet.getRow( SHUBETSU_ROW_POSITION + i); HanbaiJissekiChosahyoItem kojiSunmate = kojiSunmateMap.get(KOJI_SHUBETSU_ARRAY[i]); if (kojiSunmate != null) { // 件数 row.getCell(3).setCellValue(kojiSunmate.getKensu()); // 販売実績 row.getCell(4).setCellValue(kojiSunmate.getHanbai()); // 粗利益 row.getCell(5).setCellValue(kojiSunmate.getArarieki()); } HanbaiJissekiChosahyoItem kojiNotSunmate = kojiNotSunmateMap.get(KOJI_SHUBETSU_ARRAY[i]); if (kojiNotSunmate != null) { // 件数 row.getCell(12).setCellValue(kojiNotSunmate.getKensu()); // 販売実績 row.getCell(13).setCellValue(kojiNotSunmate.getHanbai()); // 粗利益 row.getCell(14).setCellValue(kojiNotSunmate.getArarieki()); } } Map<String, HanbaiJissekiChosahyoItem> dokiSunmateMap = entity.getDokiSunmateMap(); for (int i = 0; i < DOKI_SUMATE_ARRAY.length; i++) { HanbaiJissekiChosahyoItem dokiSunmate = dokiSunmateMap.get(DOKI_SUMATE_ARRAY[i]); if (dokiSunmate != null) { // 29行目(index=28)から設定開始 HSSFRow row = sheet.getRow( DOKI_ROW_POSITION + i); // 件数 row.getCell(3).setCellValue(dokiSunmate.getKensu()); // 販売実績 row.getCell(4).setCellValue(dokiSunmate.getHanbai()); // 粗利益 row.getCell(5).setCellValue(dokiSunmate.getArarieki()); } } Map<String, HanbaiJissekiChosahyoItem> dokiNotSunmateMap = entity.getDokiNotSunmateMap(); for (int i = 0; i < DOKI_NOT_SUMATE_ARRAY.length; i++) { HanbaiJissekiChosahyoItem dokiNotSunmate = dokiNotSunmateMap.get(DOKI_NOT_SUMATE_ARRAY[i]); if (dokiNotSunmate != null) { // 29行目(index=28)から設定開始 HSSFRow row = sheet.getRow( DOKI_ROW_POSITION + i ); // 件数 row.getCell(12).setCellValue(dokiNotSunmate.getKensu()); // 販売実績 row.getCell(13).setCellValue(dokiNotSunmate.getHanbai()); // 粗利益 row.getCell(14).setCellValue(dokiNotSunmate.getArarieki()); } } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Java

1 for (int i = 0; i < ChohyoConstants.BUTEN_CD_ARRAY.length; i++) { 2 String butenCd = ChohyoConstants.BUTEN_CD_ARRAY[i]; 3 HanbaiJissekiChosahyoEntity entity = map.get(butenCd); 4 if (entity != null) { 5 sheet = workBook.getSheetAt(i); 6 createSheet(sheet, scopeString, entity); 7 } 8 } 9 workBook.setForceFormulaRecalculation(true);

このコードからすると、ChohyoConstants.BUTEN_CD_ARRAY[1] が map にない、とかですかね?
※なければ entity が null になるから、createSheet が呼ばれず白いままになる

投稿2017/03/10 06:14

tacsheaven

総合スコア13703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aki.M

2017/03/16 01:39

回答ありがとうございます。 今回いらなくなったコードが入りっぱなしでnullのデータを取ってきており、そのコード削除して順番通りにでるようになりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問