Как загрузить загруженный файл Excel из магазина blobstore и как назначить этот файл в FileInputStream

Я работаю над проектом с использованием GWT Java. Я загрузил файл Excel в Blobstore в Google App Engine. Я хочу прочитать файл Excel из blobstore. Поэтому я должен назначить этот файл Excel из blobstore в FileInputStream.

Пример:

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

Каковы возможные способы назначения этого файла Excel из хранилища BLOB-объектов в FileInputStream? Любая помощь?

Заранее спасибо

2 ответа

Apache POI XSSFWorkbook принимает либо File или InputStream, Предполагая, что вы можете получить доступ к объекту Blob через BlobstoreInputStream Например, вы можете позвонить:

 // 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

Вы можете использовать Apache POI, чтобы открыть файл Excel, используя FileInputStream например:

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

и работать с API POI для изменения Excelsheet или получения cellinfos. Более подробная информация о Apache POI: нажмите здесь.

Или, чтобы увидеть аналогичную проблему на SO: нажмите здесь

Другие вопросы по тегам