我正在使用GWT Java开展项目。我在Excel应用引擎中将excel文件上传到了blobstore。我想从blobstore读取excel文件。所以我必须将那个excel文件从blobstore分配给FileInputStream。
示例:
FileInputStream file = new FileInpuStream("what is path shall i provide here")
有哪些方法可以将excel文件从blobstore分配到FileInputStream? 有什么帮助吗?
先谢谢
答案 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
接受File
或InputStream
。
假设您可以通过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)));
}
}
}