我有一个具有单个键和多个值的Map,我试图将这些数据写入Excel工作表中。

Map<String, Object[]> data=new TreeMap<String, Object[]>();


在此地图中,我要输入一些值。

ContentRoleType role=ContentRoleType.toContentRoleType("PRIMARY");
QueryResult contentQuery=ContentHelper.service.getContentsByRole(cadDoc, role);
System.out.println("Content length of "+cadDoc.getName()+" is "+contentQuery.size());
ContentLength=contentQuery.size();
data.put(CadName, new Object[]{Iteration,ContentLength});


然后,我遍历此地图并将这些元素写入单元格。

Set<String> keyset=data.keySet();
        int rowNum=0;
        for(String key:keyset){
            Row row=sheet.createRow(rowNum++);
            Object[] objArr=data.get(key);
            int cellNum=0;
            for(Object obj:objArr){
                Cell cell=row.createCell(cellNum++);
                if(obj instanceof String)
                    cell.setCellValue((String)obj);
                else if(obj instanceof Integer)
                    cell.setCellValue((Integer)obj);
            }
        }
        try
        {
            //Write the workbook in file system
            FileOutputStream out = new FileOutputStream(new File("D:\\testExcel.xlsx"));
            workbook.write(out);
            out.close();
            System.out.println("testExcel.xlsx written successfully on disk.");
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }


这里的问题在我的Excel工作表中,我只能看到两列是值。我无法在Excel工作表中打印键。我想将我的键打印为我的第一列,然后两三个是值。如何添加这个循环中的关键?

谢谢大家

最佳答案

您不会在内部循环中添加键-这不是要循环的数据的一部分。您需要在循环之前添加它:

row.createCell(0).setCellValue(key); // Key is in column 0
int cellNum = 1; // Values now start at column 1
// Loop as before


(当然,这仍在外部循环中-您想每行显示一个键。)

07-26 04:49