Как загрузить загруженный файл 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: нажмите здесь