我有一个具有单个键和多个值的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
(当然,这仍在外部循环中-您想每行显示一个键。)