Java 将带有单个键和多个值的映射写入Excel工作表
我有一个带有单键和多个值的Java 将带有单个键和多个值的映射写入Excel工作表,java,excel,map,Java,Excel,Map,我有一个带有单键和多个值的Map。我正在尝试将这些数据写入excel工作表 Map<String, Object[]> data=new TreeMap<String, Object[]>(); 然后我在这个映射上迭代,并将这些元素写入单元格 Set<String> keyset=data.keySet(); int rowNum=0; for(String key:keyset){ Row row=s
Map
。我正在尝试将这些数据写入excel工作表
Map<String, Object[]> data=new TreeMap<String, Object[]>();
然后我在这个映射上迭代,并将这些元素写入单元格
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();
}
Set keyset=data.keyset();
int rowNum=0;
用于(字符串键:键集){
Row-Row=sheet.createRow(rowNum++);
Object[]objArr=data.get(key);
int-cellNum=0;
用于(对象对象对象:对象对象对象){
Cell Cell=row.createCell(cellNum++);
if(字符串的obj实例)
cell.setCellValue((字符串)obj);
else if(obj instanceof Integer)
cell.setCellValue((整数)obj);
}
}
尝试
{
//在文件系统中编写工作簿
FileOutputStream out=新的FileOutputStream(新文件(“D:\\testExcel.xlsx”);
练习册。写(出);
out.close();
System.out.println(“testExcel.xlsx已成功写入磁盘”);
}
捕获(例外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
(当然,这仍然在外循环中-您希望每行显示一个键。)您不会将键添加到内循环中-它不是要循环的数据的一部分。您需要将其添加到循环之前:
row.createCell(0).setCellValue(key); // Key is in column 0
int cellNum = 1; // Values now start at column 1
// Loop as before
(当然,这仍然在外循环中-您希望每行显示一个键。)