0

我有一个对象列表(每个对象都包含一个字符串和另一个对象列表(这个对象包含两个字符串)

我需要使用 Apache poi API 将数据附加到 Excel 表中

List<objects> -->String(ex:-Test profile1, List<objects> --> String(tab name ex :standard -account),String (ex :hidden/default off)

TabName 测试配置文件1 测试配置文件2 测试配置文件3 测试配置文件4

标准-帐户 默认关闭 默认关闭 默认关闭 默认关闭 标准-活动隐藏 隐藏 隐藏 隐藏 隐藏 标准-案例 默认关闭 默认关闭 默认关闭 默认关闭 标准-联系人 默认开启 默认开启 默认开启 默认开启

当对象列表(字符串,字符串)的大小发生变化时,我编写的代码可以正常工作

HSSFRow rowTablevelHeader = null;
                HSSFRow rowtablevel = null;

            //check sheet name
            rowTablevelHeader = fourthSheet.createRow(0);

            HSSFCell cellT1 = rowTablevelHeader.createCell(0);
            cellT1.setCellValue(new HSSFRichTextString("TabName"));

            /*int maxtablevelSize = listprofileTabLevelVisibilities.get(0).getTablevelVisibility().size();

            for (int i = 0; i < listprofileTabLevelVisibilities.size(); i++) {

            int tablevelSize1 = listprofileTabLevelVisibilities.get(i).getTablevelVisibility().size();

            if(tablevelSize1 >maxtablevelSize)
            {
                maxtablevelSize= tablevelSize1;
            }
            }
            */

            for (int i = 0; i < listprofileTabLevelVisibilities.size(); i++) {


                HSSFCell cellP1 = rowTablevelHeader.createCell(i+1);
                cellP1.setCellValue(new HSSFRichTextString(listprofileTabLevelVisibilities.get(i).getProfileName()));

                int currentRow = 0;

    System.out.println("Size tablevel ---   "+listprofileTabLevelVisibilities.get(i).getTablevelVisibility().size());


                for (int j = 0; j < listprofileTabLevelVisibilities.get(i).getTablevelVisibility().size(); j++) {

                    currentRow++;

                    rowtablevel = fourthSheet.getRow(currentRow);

                    if(null == rowtablevel){
                        rowtablevel =fourthSheet.createRow(currentRow);
                    }

                    if(null ==rowtablevel.getCell(0))
                    {
                        HSSFCell cellAP1 = rowtablevel.createCell(0);
                        cellAP1.setCellValue(new HSSFRichTextString(listprofileTabLevelVisibilities.get(i).getTablevelVisibility().get(j).getTabName()));   
                    }


                System.out.println("Tab name ---  "+listprofileTabLevelVisibilities.get(i).getTablevelVisibility().get(j).getTabName());

                if(rowtablevel.getCell(0).getStringCellValue().equalsIgnoreCase(listprofileTabLevelVisibilities.get(i).getTablevelVisibility().get(j).getTabName())){
                    HSSFCell cellAP2 = rowtablevel.createCell(i+1);
                    cellAP2.setCellValue(new HSSFRichTextString(listprofileTabLevelVisibilities.get(i).getTablevelVisibility().get(j).getTabVisibility()));
                }
                }
            }
4

0 回答 0