Гость
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / чтение Excel файла без его сохранения на диске / 20 сообщений из 20, страница 1 из 1
16.08.2021, 16:07
    #40091047
Павел Гужанов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение Excel файла без его сохранения на диске
Здравствуйте.
Имеется веб приложение, на фронте загружается файл .xls или .xlsx, отправляется на сервер. На сервере файл должен прочитаться, и данные из него сохраняются в БД.
Покопался в интернете, нашел кучу примеров, но у всех примеров один недостаток: файл сохраняется на диске на сервере.
Мне же надо сделать, чтобы при получении файла с фронта он парсился, не сохраняясь на диск.
Для работы с файлом не сервере используется Apache POI.
Подскажите, как работать на сервере с файлом экселя, не сохраняя его на диск.
...
Рейтинг: 0 / 0
16.08.2021, 16:32
    #40091051
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение Excel файла без его сохранения на диске
внимательно смотреть API, где есть чтение из файла, обязательно будет и чтение из InputStream. Еще можно подождать, пока прибежит Станислав Башкирцев и все разжует.
...
Рейтинг: 0 / 0
16.08.2021, 17:00
    #40091057
чтение Excel файла без его сохранения на диске
Да тут даже жевать нечего.. Многие примеры в интернетах используют InputStream. Либо берем его как есть, либо, если мы получили уже байты, то оборачиваем в InputStream:
Код: java
1.
2.
ByteArrayInputStream in = new ByteArrayInputStream(bytes);
Workbook wb = WorkbookFactory.create(in);
...
Рейтинг: 0 / 0
16.08.2021, 20:09
    #40091102
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение Excel файла без его сохранения на диске
Павел Гужанов
Здравствуйте.
Имеется веб приложение, на фронте загружается файл .xls или .xlsx, отправляется на сервер. На сервере файл должен прочитаться, и данные из него сохраняются в БД.
Покопался в интернете, нашел кучу примеров, но у всех примеров один недостаток: файл сохраняется на диске на сервере.
Мне же надо сделать, чтобы при получении файла с фронта он парсился, не сохраняясь на диск.
Для работы с файлом не сервере используется Apache POI.
Подскажите, как работать на сервере с файлом экселя, не сохраняя его на диск.

Apache POI это достаточно умная обобщенная библиотека и она нигде не прибита гвоздями к файловой системе.
Вы можете использовать подход который предлагает Станислав. Читать и хранить загруженный блоб в памяти сессии.
Но если файлы будут слишком большие а пользователей много - то это создаст ненужную нагрузку на heap.
Возможно имеет смысл хранить загруженные файлы в /tmp ( File.createTempFile(....)) кроме того что
вы и так будете хранить в памяти объектную модель самого WorkBook документа.
...
Рейтинг: 0 / 0
16.08.2021, 21:10
    #40091107
чтение Excel файла без его сохранения на диске
Вообще Tomcat ведь сохраняет загруженные через multipart файлы в свою tmp директорию. Интересно, можно ли откуда-то взять путь к этому временному файлу и обратиться к нему напрямую через файловую систему..
...
Рейтинг: 0 / 0
17.08.2021, 09:04
    #40091135
Garrick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение Excel файла без его сохранения на диске
Павел Гужанов,

А как вы получите файл "не с диска"? Как вы его "загружаете" на сервер.
...
Рейтинг: 0 / 0
17.08.2021, 09:13
    #40091136
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение Excel файла без его сохранения на диске
Stanislav Bashkyrtsev
Вообще Tomcat ведь сохраняет загруженные через multipart файлы в свою tmp директорию. Интересно, можно ли откуда-то взять путь к этому временному файлу и обратиться к нему напрямую через файловую систему..
вот поэтому, не торопись код постить бежать.
...
Рейтинг: 0 / 0
17.08.2021, 11:02
    #40091152
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение Excel файла без его сохранения на диске
Нормально он запостил. Простой и очевидный ответ. В духе stackoverflow. Какую еще философию
нужно было запостить?
...
Рейтинг: 0 / 0
17.08.2021, 11:21
    #40091156
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение Excel файла без его сохранения на диске
mayton,
Если он очевидный, зачем трое задали вопросы?
Если очевидный для автора то где его благодарность?
Если очевидный для тебя то зачем ты уточнял его?
Не очевидно?)))
...
Рейтинг: 0 / 0
17.08.2021, 11:44
    #40091164
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение Excel файла без его сохранения на диске
mayton,
Перечитай вопрос Garrick. Он "философский".
...
Рейтинг: 0 / 0
17.08.2021, 12:40
    #40091178
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение Excel файла без его сохранения на диске
очередная глубокая философия на мелких местах ...... и пример антитезы:
Код: plaintext
 zstd < файл | curl -T ...
...
Рейтинг: 0 / 0
19.08.2021, 19:42
    #40092003
O_79_O
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение Excel файла без его сохранения на диске
mayton
Нормально он запостил. Простой и очевидный ответ. В духе stackoverflow. Какую еще философию
нужно было запостить?
нужно просто петрухе огрничить возможность гадить в этой ветке и я гарантию даю - тут появится свежая кровь.Вообщем и целом петро нужно принести в жертву )
...
Рейтинг: 0 / 0
19.08.2021, 19:45
    #40092004
O_79_O
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение Excel файла без его сохранения на диске
Павел Гужанов
Здравствуйте.
Имеется веб приложение, на фронте загружается файл .xls или .xlsx, отправляется на сервер. На сервере файл должен прочитаться, и данные из него сохраняются в БД.
Покопался в интернете, нашел кучу примеров, но у всех примеров один недостаток: файл сохраняется на диске на сервере.
Мне же надо сделать, чтобы при получении файла с фронта он парсился, не сохраняясь на диск.
Для работы с файлом не сервере используется Apache POI.
Подскажите, как работать на сервере с файлом экселя, не сохраняя его на диск.

самый разумный подход ->через стрим
...
Рейтинг: 0 / 0
19.08.2021, 19:45
    #40092005
O_79_O
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение Excel файла без его сохранения на диске
PetroNotC Sharp
mayton,
Если он очевидный, зачем трое задали вопросы?
Если очевидный для автора то где его благодарность?
Если очевидный для тебя то зачем ты уточнял его?
Не очевидно?)))

обгадился в штанишки в очередной раз наша петрушка
...
Рейтинг: 0 / 0
19.08.2021, 19:48
    #40092006
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение Excel файла без его сохранения на диске
O_79_O,
...
Рейтинг: 0 / 0
06.09.2021, 09:54
    #40095407
Павел Гужанов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение Excel файла без его сохранения на диске
Сделал следующим образом:
С клиента приходит файл Excel в Base64
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
byte[] fileBytes = Base64.decodeBase64(data.getData());
ByteArrayInputStream in = new ByteArrayInputStream(fileBytes);
try (HSSFWorkbook wb = new HSSFWorkbook(in)) {
     HSSFSheet sheet = wb.getSheetAt(0);
     int i = 1;
     HSSFRow row = sheet.getRow(i);
     while (row != null) {
          HSSFCell cellParty = row.getCell(0);
          ...



Stanislav Bashkyrtsev - Спасибо!
...
Рейтинг: 0 / 0
06.09.2021, 10:23
    #40095414
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение Excel файла без его сохранения на диске
Павел Гужанов,
Вопрос был в том что data.getData() берется тоже из файла на диске.
Если это так то условие задачи не выполнялось.
...
Рейтинг: 0 / 0
07.09.2021, 12:49
    #40095706
Павел Гужанов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение Excel файла без его сохранения на диске
PetroNotC Sharp,
data приходит с клиента POST запросом, на диске не сохраняется.
...
Рейтинг: 0 / 0
07.09.2021, 13:55
    #40095734
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение Excel файла без его сохранения на диске
Павел Гужанов
PetroNotC Sharp,
data приходит с клиента POST запросом, на диске не сохраняется.
вот теперь, через месяц все уточнили.
...
Рейтинг: 0 / 0
07.09.2021, 14:15
    #40095745
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение Excel файла без его сохранения на диске
Да... Москва не сразу строилась.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / чтение Excel файла без его сохранения на диске / 20 сообщений из 20, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]