如何编写一个RestService Post来消费Excel文件?

3

我需要编写一个Restful服务,用于消费Excel文件,将其映射为一个类并写入数据库。

@POST
@Path("/insertDataInDB)
@Consumes(MediaType.???)
public Response insertDataInDB(???) {
   //do Stuff
}

我的第一个想法是使用ByteStream,然后使用Apache POI解释流。但是这里出现了异常:“org.jboss.resteasy.spi.UnsupportedMediaTypeException”。

@POST
@Path("/insertDataInDB")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public void insertDataInDB(@FormDataParam("inputfile")
File inputfile) {
    //do Stuff
}

有人知道应该使用什么MediaType和什么类型的Java DataType吗?

或者有没有更好的想法?

1个回答

3

如果有人遇到同样的问题,这个方法对我有效。

@POST
@Path("/insertDataInDB")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public void insertDataInDB2(@FormDataParam("inputfile")
MultipartFormDataInput inputfile) {

    Map<String, List<InputPart>> uploadForm = inputfile.getFormDataMap();
    List<InputPart> inputParts = uploadForm.get("inputfile");

    //i have only one inputPart
    InputPart inputPart = inputParts.get(0);

    try {
        InputStream inputStream = inputPart.getBody(InputStream.class, null);

        XSSFWorkbook workbook = new XSSFWorkbook(inputStream);
        XSSFSheet sheet = workbook.getSheetAt(0);
        System.out.println(sheet.getSheetName());

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接