我有一个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工作表中打印密钥。我想打印我的密钥作为我的第一列,然后两个和三个是值。如何在此循环中添加密钥?
全部谢谢
答案 0 :(得分:1)
您不会在内部循环中添加密钥 - 它不是您循环的数据的一部分。您需要在循环之前添加:
row.createCell(0).setCellValue(key); // Key is in column 0
int cellNum = 1; // Values now start at column 1
// Loop as before
(当然,这仍然在外部循环中 - 您希望每行显示一个密钥。)