Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用ApachePOI在Excel单元格循环时将数据打印到单元格中_Java_Excel_Apache - Fatal编程技术网

Java 使用ApachePOI在Excel单元格循环时将数据打印到单元格中

Java 使用ApachePOI在Excel单元格循环时将数据打印到单元格中,java,excel,apache,Java,Excel,Apache,我有Java程序,我希望将数据输出到Excel电子表格中。我发现我可以使用ApachePOI实现这一点。我试着用找到的例子,一切似乎都很好。但是,在示例程序中,每次迭代(循环)时,我都无法在Excel中打印新行 这是我的节目: import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.sql.

我有Java程序,我希望将数据输出到Excel电子表格中。我发现我可以使用ApachePOI实现这一点。我试着用找到的例子,一切似乎都很好。但是,在示例程序中,每次迭代(循环)时,我都无法在Excel中打印新行

这是我的节目:

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.*;

public class Excel {

    public static void main(String[] args) throws Exception {
        HSSFWorkbook workbook = new HSSFWorkbook();
        HSSFSheet sheet = workbook.createSheet("Sample sheet");

        Map<String, Object[]> data = new HashMap<String, Object[]>();
        data.put("1", new Object[] {"Emp No.", "Name", "Salary"});  

        for (int i=0;i<5;i++){

            data.put("2", new Object[] {"5", "Jane", "300"});

        }

        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 Date) 
                    cell.setCellValue((Date)obj);
                else if(obj instanceof Boolean)
                    cell.setCellValue((Boolean)obj);
                else if(obj instanceof String)
                    cell.setCellValue((String)obj);
                else if(obj instanceof Double)
                    cell.setCellValue((Double)obj);
            }
        }

    try {
        FileOutputStream out = 
                new FileOutputStream(new File("new.xls"));
        workbook.write(out);
        out.close();
        System.out.println("Excel written successfully..");

    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    }

}
但它总是只打印Excel工作表中的第一行。任何熟悉使用ApachePOI的人都可以在这方面帮助我吗?谢谢

here
data.put(“2”,新对象[]{“5”,“Jane”,“300”})
“2”->表示行数。所以总是替换第2行
所以,试着去做吧

for (int i=2;i<7;i++){
        data.put(i + "", new Object[] {"5", "Jane", "300"});
   }

for(int i=2;i您构建的数据集如下所示:

   data.put("1", new Object[] {"Emp No.", "Name", "Salary"});
   for (int i=0;i<5;i++){
        data.put("2", new Object[] {"5", "Jane", "300"});
    }
data.put(“1”,新对象[]{“Emp编号”,“名称”,“薪资”});
对于(int i=0;i
   data.put("1", new Object[] {"Emp No.", "Name", "Salary"});
   for (int i=0;i<5;i++){
        data.put("2", new Object[] {"5", "Jane", "300"});
    }
   data.put(0, new Object[] {"Emp No.", "Name", "Salary"});
   for (int i=1;i<6;i++){
        data.put(i, new Object[] {"5", "Jane", "300"});
    }