从.xlsx读取特定工作表,然后写入另一个.xlsx

时间:2019-12-27 06:24:16

标签: java excel

我有一种情况,我必须从.xlsx(Excel)中读取第二张图纸,并将相同的数据写入另一个.xlsx(Excel)中。

根据我的Google研究,我找到了以下答案,但这不符合我的要求。请给我任何建议,谢谢。

public class WriteExcelDemo 
{
 public static void main(String[] args) 
 {
    //Blank workbook
    XSSFWorkbook workbook = new XSSFWorkbook(); 

    //Create a blank sheet
    XSSFSheet sheet = workbook.createSheet("Employee Data");

    //This data needs to be written (Object[])
    Map<String, Object[]> data = new TreeMap<String, Object[]>();
    data.put("1", new Object[] {"ID", "NAME", "LASTNAME"});
    data.put("2", new Object[] {1, "Amit", "Shukla"});
    data.put("3", new Object[] {2, "Lokesh", "Gupta"});
    data.put("4", new Object[] {3, "John", "Adwards"});
    data.put("5", new Object[] {4, "Brian", "Schultz"});

    //Iterate over data and write to sheet
    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("howtodoinjava_demo.xlsx"));
        workbook.write(out);
        out.close();
        System.out.println("howtodoinjava_demo.xlsx written successfully on disk.");
    } 
    catch (Exception e) 
    {
        e.printStackTrace();
    }
}

}

1 个答案:

答案 0 :(得分:0)

尝试一下: https://www.callicoder.com/java-read-excel-file-apache-poi/#program-to-read-an-excel-file-using-apache-poi

遍历工作表列表,直到找到所需的工作表为止。然后阅读。