如何从blobstore上传excel文件以及如何将该文件分配给FileInputStream

时间:2015-08-12 10:34:54

标签: java gwt fileinputstream

我正在使用GWT Java开展项目。我在Excel应用引擎中将excel文件上传到了blobstore。我想从blobstore读取excel文件。所以我必须将那个excel文件从blobstore分配给FileInputStream。

示例:

 FileInputStream file = new FileInpuStream("what is path shall i provide here")  

有哪些方法可以将excel文件从blobstore分配到FileInputStream? 有什么帮助吗?

先谢谢

2 个答案:

答案 0 :(得分:0)

您可以使用Apache POI使用FileInputStream打开Excel文件,例如:

XSSFWorkbook wb = new XSSFWorkbook(new FileInputStream(<whatever>));

并使用POI API修改Excel表格或获取cellinfos。有关Apache POI的更多信息:click here

或者在SO上看到类似的问题:click here

答案 1 :(得分:0)

Apache POI XSSFWorkbook接受FileInputStream。 假设您可以通过BlobstoreInputStream实例访问Blob对象,可以调用:

 // BlobKey blobKey = initialize your blob key
 XSSFWorkbook wb = new XSSFWorkbook(new BlobstoreInputStream(blobKey));

您可以通过以下网址访问Blobstore

public class Upload extends HttpServlet {
    private BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();

    @Override
    public void doPost(HttpServletRequest req, HttpServletResponse res)
        throws ServletException, IOException {
        Map<String, List<BlobKey>> blobs = blobstoreService.getUploads(req);
        List<BlobKey> blobKeys = blobs.get("myFile");

        if (blobKeys != null && !blobKeys.isEmpty()) {
            XSSFWorkbook wb = new XSSFWorkbook(new BlobstoreInputStream(blobKeys.get(0)));
        }
    }
}

进一步阅读:Blobstore Java API Overview