首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache POI未设置整行样式

Apache POI未设置整行样式
EN

Stack Overflow用户
提问于 2015-07-08 02:31:51
回答 1查看 93关注 0票数 0

我正在使用Apache POI生成一些报告,并且我在设置行的样式方面遇到了问题。当我打开生成的excel文件时,行的样式在第25列之后开始,我已经尝试了所有方法,但找不到原因。

代码如下:

代码语言:javascript
复制
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.LinkedHashMap;

import org.apache.poi.EncryptedDocumentException;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;


public class PrintExcel {

static void print(LinkedHashMap<RowReport,RowReport> map, String fileName) {

    try {               

        Workbook wb = new HSSFWorkbook();   
        Sheet sheet = wb.createSheet("DiffReport");

        int iterator_row = 0,iterator_cell = 0;

        CellStyle style = wb.createCellStyle();
        style.setFillForegroundColor(HSSFColor.RED.index);
        style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);

        //Iterate through rows

        for(RowReport row : map.keySet()) {

            Row rowDestination = sheet.createRow((short)iterator_row);  

            //cellDestination.setCellStyle(style);

            for(iterator_cell = 0; iterator_cell <= 25; iterator_cell++) {

                Cell cellDestination = rowDestination.createCell(iterator_cell);

                switch (iterator_cell) {

                    case 0:
                        cellDestination.setCellValue(row.getPlace());
                        break;
                    case 1:
                        cellDestination.setCellValue(row.getPoint());   
                        break;
                    case 2:
                        cellDestination.setCellValue(row.getSide());
                        break;
                    case 3:
                        cellDestination.setCellValue(row.getSub_sector());
                        break;
                    case 4:
                        cellDestination.setCellValue(row.getPosition());
                        break;
                    case 5:
                        cellDestination.setCellValue(row.getBeam());
                        break;
                    case 6:
                        cellDestination.setCellValue(row.getSector());
                        break;
                    case 7:
                        cellDestination.setCellValue(row.getTpg300_name());
                        break;
                    case 8:
                        cellDestination.setCellValue(row.getSecond_name());
                        break;
                    case 9:
                        cellDestination.setCellValue(row.getProgram());
                        break;
                    case 10:
                        cellDestination.setCellValue(row.getCard_A_type());
                        break;
                    case 11:
                        cellDestination.setCellValue(row.getCard_B_type());
                        break;
                    case 12:
                        cellDestination.setCellValue(row.getUnit());
                        break;
                    case 13:
                        cellDestination.setCellValue(row.getUnderange());
                        break;
                    case 14:
                        cellDestination.setCellValue(row.getA1());
                        break;
                    case 15:
                        cellDestination.setCellValue(row.getA2());
                        break;
                    case 16:
                        cellDestination.setCellValue(row.getB1());
                        break;
                    case 17:
                        cellDestination.setCellValue(row.getB2());
                        break;
                    case 18:
                        cellDestination.setCellValue(row.getCardinal());
                        break;
                    case 19:
                        cellDestination.setCellValue(row.getSource());
                        break;
                    case 20:
                        cellDestination.setCellValue(row.getGauge());
                        break;
                    case 21:
                        cellDestination.setCellValue(row.getFilter());
                        break;
                    case 22:
                        cellDestination.setCellValue(row.getValid());
                        break;
                    case 23:
                        cellDestination.setCellValue(row.getStatus());
                        break;
                    case 24:
                        cellDestination.setCellValue(row.getUpthreshold());
                        break;
                    case 25:
                        cellDestination.setCellValue(row.getLowthreshold());
                        break;

                default:
                    break;
                }

            }

            rowDestination.setRowStyle(style);
            iterator_row++;

        }

        FileOutputStream fileOut = new FileOutputStream(fileName);
        wb.write(fileOut);
        wb.close();
        fileOut.close();

    } catch (EncryptedDocumentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }


}

}

EN

回答 1

Stack Overflow用户

发布于 2015-07-08 02:37:05

你需要打电话给

代码语言:javascript
复制
rowDestination.setRowStyle(style)

在索引<= 25处终止的for循环中。

只有在此循环结束后才能调用它

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31276600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档