Maison  >  Questions et réponses  >  le corps du texte

java - 关于excel上传解析

前台通过form表单上传文件,后台通过request.getInputStream得到流,但是POI建立wordbook要求是fileInputStream,我获取的是servletInputStream,强转会出错。怎么解决。我查的资料都是通过固定文件位置读取流,我想使用用户上传的流来生成workbook该怎么做?

PHP中文网PHP中文网2741 Il y a quelques jours440

répondre à tous(4)je répondrai

  • 伊谢尔伦

    伊谢尔伦2017-04-18 10:29:52

    Essayez l'exemple sur le site officiel.

    répondre
    0
  • 巴扎黑

    巴扎黑2017-04-18 10:29:52

    1. Il existe une solution pour l'enregistrer d'abord à un certain emplacement sur le serveur, puis le lire. Vous devez faire attention au nom unique du fichier et le supprimer après le traitement
    2. peut obtenir un fichier qui est un objet File. J'ai oublié comment le faire

    répondre
    0
  • 怪我咯

    怪我咯2017-04-18 10:29:52

    Quelle version du POI ? Dans la méthode de construction de XSSFWorkbook, un paramètre est évidemment InputStream

    répondre
    0
  • 怪我咯

    怪我咯2017-04-18 10:29:52

    ServletInputStream extends InputStream ne peut bien sûr pas être converti de force. Vous pouvez lire ServletInputStream à partir du tampon, puis le convertir en InputStream (si cela ne vous dérange pas). La méthode normale consiste à créer un fichier temporaire sur le serveur (si vous voyez). Si cela ne se passe pas bien, vous pouvez le supprimer)
    Vous pouvez essayer d'utiliser springmvc,
    1.@RequestParam(value="file",required = false)Fichier MultipartFile //Recevoir les paramètres
    2 . Mais toujours pour créer le chemin de sauvegarde du fichier

    String path = request.getSession(true).getServletContext().getRealPath("/upload");
     String fileName = new Date().getTime()+file.getOriginalFilename();

    3. Enregistrez le fichier

    File targetFile = new File(path,fileName);
    file.transferTo(targetFile)

    4.POI...

    répondre
    0
  • Annulerrépondre