1

我有一个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 表中打印键。我想打印我的键作为我的第一列然后两个和三个是值。如何添加这个循环里面的关键?

谢谢大家

4

1 回答 1

1

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

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

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

于 2013-10-16T06:02:17.323 回答