Гость
Форумы / Java [игнор отключен] [закрыт для гостей] / javafx выбор файла и его чтение / 18 сообщений из 18, страница 1 из 1
19.08.2019, 19:07
    #39851283
dolcegabana
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javafx выбор файла и его чтение
Добрый вечер! есть задача, которую ни как не могу решить. Сделал кнопку по нажатию которой открывается проводник и мы выбираем эксель файл. Сделал это так:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
private void handle(ActionEvent event) {
        Node source = (Node) event.getSource();
        Stage PrimaryStage = (Stage) source.getScene().getWindow();
        FileChooser fileChooser = new FileChooser();
        FileChooser.ExtensionFilter xlsxfilter = new FileChooser.ExtensionFilter("xlsx files(*.xlsx)", "*.xlsx");
        fileChooser.getExtensionFilters().add(xlsxfilter);
        fileChooser.getExtensionFilters().addAll(xlsxfilter);
        fileChooser.setTitle("Выбор файла");
        fileObject = fileChooser.showOpenDialog(PrimaryStage);
        if (fileObject != null) {
          
            String putkfailu = fileObject.getPath();




Но есть задача не просто выбирать этот файл, а выбираем и пытаемся попасть в него вернее в его содержимое. Так вот fileobject я получил. НО как мне до самого содержимого добраться? Apache poi в проект я подключил...
...
Рейтинг: 0 / 0
19.08.2019, 19:21
    #39851291
asv79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javafx выбор файла и его чтение
название ппц конечно putkfailu)))
у тебя есть filepath ,далее просто читай файл а чем проблема?
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Iterator;
 
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.FormulaEvaluator;
import org.apache.poi.ss.usermodel.Row;
 
public class ReadExcelDemo {
 
    public static void main(String[] args) throws IOException {
 
        // Read XSL file
        FileInputStream inputStream = new FileInputStream(new File("C:/demo/employee.xls"));
 
        // Get the workbook instance for XLS file
        HSSFWorkbook workbook = new HSSFWorkbook(inputStream);
 
        // Get first sheet from the workbook
        HSSFSheet sheet = workbook.getSheetAt(0);
 
        // Get iterator to all the rows in current sheet
        Iterator<Row> rowIterator = sheet.iterator();
 
        while (rowIterator.hasNext()) {
            Row row = rowIterator.next();
            // Get iterator to all cells of current row
            Iterator<Cell> cellIterator = row.cellIterator();
 
            while (cellIterator.hasNext()) {
                Cell cell = cellIterator.next();
 
                // Change to getCellType() if using POI 4.x
                CellType cellType = cell.getCellTypeEnum();
 
                switch (cellType) {
                case _NONE:
                    System.out.print("");
                    System.out.print("\t");
                    break;
                case BOOLEAN:
                    System.out.print(cell.getBooleanCellValue());
                    System.out.print("\t");
                    break;
                case BLANK:
                    System.out.print("");
                    System.out.print("\t");
                    break;
                case FORMULA:
                    // Formula
                    System.out.print(cell.getCellFormula());
                    System.out.print("\t");
                     
                    FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator();
                    // Print out value evaluated by formula
                    System.out.print(evaluator.evaluate(cell).getNumberValue());
                    break;
                case NUMERIC:
                    System.out.print(cell.getNumericCellValue());
                    System.out.print("\t");
                    break;
                case STRING:
                    System.out.print(cell.getStringCellValue());
                    System.out.print("\t");
                    break;
                case ERROR:
                    System.out.print("!");
                    System.out.print("\t");
                    break;
                }
 
            }
            System.out.println("");
        }
    }
 
}
...
Рейтинг: 0 / 0
19.08.2019, 19:24
    #39851293
dolcegabana
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javafx выбор файла и его чтение
asv79,

Вы имеете ввиду вот так сделать?

String putkfailu = fileObject.getPath();
...
Рейтинг: 0 / 0
19.08.2019, 19:30
    #39851295
asv79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javafx выбор файла и его чтение
dolcegabanaasv79,

Вы имеете ввиду вот так сделать?

String putkfailu = fileObject.getPath();
вот этот putkfailu вставь
сюда
Код: java
1.
FileInputStream inputStream = new FileInputStream(new File(putkfailu));
...
Рейтинг: 0 / 0
19.08.2019, 19:31
    #39851296
dolcegabana
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javafx выбор файла и его чтение
asv79,

вставил! но при компиляции ошибка:
Error:(68, 57) java: unreported exception java.io.FileNotFoundException; must be caught or declared to be thrown

Что можно сделать?
...
Рейтинг: 0 / 0
19.08.2019, 19:32
    #39851297
asv79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javafx выбор файла и его чтение
dolcegabanaasv79,

вставил! но при компиляции ошибка:
Error:(68, 57) java: unreported exception java.io.FileNotFoundException; must be caught or declared to be thrown

Что можно сделать?
значит по указанному тобой пути нет файла
указать правильный путь)
...
Рейтинг: 0 / 0
19.08.2019, 19:35
    #39851301
asv79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javafx выбор файла и его чтение
выведи в консоль
String putkfailu вот это и напиши сюда что в консоли пишет
...
Рейтинг: 0 / 0
19.08.2019, 19:36
    #39851302
dolcegabana
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javafx выбор файла и его чтение
asv79,

так в том то и дело при запуске компилятора на экран ошибка и не выходит форма с кнопкой, по которой происходит вызов filechooser и естсесно не могу выбрать сам файл...
...
Рейтинг: 0 / 0
19.08.2019, 19:40
    #39851306
asv79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javafx выбор файла и его чтение
dolcegabana Так вот fileobject я получил. НО как мне до самого содержимого добраться? Apache poi в проект я подключил...
ты сам пишешь что ты получил fileObject

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
private void handle(ActionEvent event) {
        Node source = (Node) event.getSource();
        Stage PrimaryStage = (Stage) source.getScene().getWindow();
        FileChooser fileChooser = new FileChooser();
        FileChooser.ExtensionFilter xlsxfilter = new FileChooser.ExtensionFilter("xlsx files(*.xlsx)", "*.xlsx");
        fileChooser.getExtensionFilters().add(xlsxfilter);
        fileChooser.getExtensionFilters().addAll(xlsxfilter);
        fileChooser.setTitle("Выбор файла");
        fileObject = fileChooser.showOpenDialog(PrimaryStage);
        if (fileObject != null) {
          
            String putkfailu = fileObject.getPath();



этот кусок кода у тебя же работал?
...
Рейтинг: 0 / 0
19.08.2019, 19:44
    #39851308
dolcegabana
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javafx выбор файла и его чтение
asv79dolcegabana Так вот fileobject я получил. НО как мне до самого содержимого добраться? Apache poi в проект я подключил...
ты сам пишешь что ты получил fileObject

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
private void handle(ActionEvent event) {
        Node source = (Node) event.getSource();
        Stage PrimaryStage = (Stage) source.getScene().getWindow();
        FileChooser fileChooser = new FileChooser();
        FileChooser.ExtensionFilter xlsxfilter = new FileChooser.ExtensionFilter("xlsx files(*.xlsx)", "*.xlsx");
        fileChooser.getExtensionFilters().add(xlsxfilter);
        fileChooser.getExtensionFilters().addAll(xlsxfilter);
        fileChooser.setTitle("Выбор файла");
        fileObject = fileChooser.showOpenDialog(PrimaryStage);
        if (fileObject != null) {
          
            String putkfailu = fileObject.getPath();




этот кусок кода у тебя же работал?
да работал

Приведу полный код :
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
    public void onClickMethod()  {
        DownloadXLSX.setOnAction(this::handle);
    }

    @FXML
    void initialize() {
    }

    private void handle(ActionEvent event) {
        Node source = (Node) event.getSource();
        Stage PrimaryStage = (Stage) source.getScene().getWindow();
        FileChooser fileChooser = new FileChooser();
        FileChooser.ExtensionFilter xlsxfilter = new FileChooser.ExtensionFilter("xlsx files(*.xlsx)", "*.xlsx");
        fileChooser.getExtensionFilters().add(xlsxfilter);
        fileChooser.getExtensionFilters().addAll(xlsxfilter);
        fileChooser.setTitle("Выбор файла");
        fileObject = fileChooser.showOpenDialog(PrimaryStage);
        if (fileObject != null) {
            //fileObject.getAbsoluteFile();

            String file = fileObject.getPath();
            FileInputStream inputStream = new FileInputStream(new File(file));






т.е. на кнопку повешено событие onClickMethod()
...
Рейтинг: 0 / 0
19.08.2019, 19:50
    #39851312
asv79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javafx выбор файла и его чтение
dolcegabanaasv79пропущено...

ты сам пишешь что ты получил fileObject

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
private void handle(ActionEvent event) {
        Node source = (Node) event.getSource();
        Stage PrimaryStage = (Stage) source.getScene().getWindow();
        FileChooser fileChooser = new FileChooser();
        FileChooser.ExtensionFilter xlsxfilter = new FileChooser.ExtensionFilter("xlsx files(*.xlsx)", "*.xlsx");
        fileChooser.getExtensionFilters().add(xlsxfilter);
        fileChooser.getExtensionFilters().addAll(xlsxfilter);
        fileChooser.setTitle("Выбор файла");
        fileObject = fileChooser.showOpenDialog(PrimaryStage);
        if (fileObject != null) {
          
            String putkfailu = fileObject.getPath();




этот кусок кода у тебя же работал?
да работал

Приведу полный код :
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
    public void onClickMethod()  {
        DownloadXLSX.setOnAction(this::handle);
    }

    @FXML
    void initialize() {
    }

    private void handle(ActionEvent event) {
        Node source = (Node) event.getSource();
        Stage PrimaryStage = (Stage) source.getScene().getWindow();
        FileChooser fileChooser = new FileChooser();
        FileChooser.ExtensionFilter xlsxfilter = new FileChooser.ExtensionFilter("xlsx files(*.xlsx)", "*.xlsx");
        fileChooser.getExtensionFilters().add(xlsxfilter);
        fileChooser.getExtensionFilters().addAll(xlsxfilter);
        fileChooser.setTitle("Выбор файла");
        fileObject = fileChooser.showOpenDialog(PrimaryStage);
        if (fileObject != null) {
            //fileObject.getAbsoluteFile();

            String file = fileObject.getPath();
            FileInputStream inputStream = new FileInputStream(new File(file));






т.е. на кнопку повешено событие onClickMethod()
ну вот допиши сюда
вместо
Код: java
1.
FileInputStream inputStream = new FileInputStream(new File(file));


Код: java
1.
System.out.println(file);


и сюда покажи что выводит в консоль
...
Рейтинг: 0 / 0
19.08.2019, 20:05
    #39851318
dolcegabana
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javafx выбор файла и его чтение
C:\Users\Андрей\Desktop\Лист Microsoft Excel.xlsx
...
Рейтинг: 0 / 0
19.08.2019, 20:08
    #39851323
dolcegabana
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javafx выбор файла и его чтение
может нужно отбрасывать исключения?
...
Рейтинг: 0 / 0
19.08.2019, 20:15
    #39851326
asv79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javafx выбор файла и его чтение
dolcegabanaможет нужно отбрасывать исключения?
да не
у тебя проблема в пути к файлу,во первых кирилица( я честно не знаю насколько это хорошо) ,а пробел в названии ,а это 100% косяк

для начала просто создай папку в C
назови ее английскими буквами и положи этот файл туда и запусти заново
...
Рейтинг: 0 / 0
19.08.2019, 20:20
    #39851329
dolcegabana
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javafx выбор файла и его чтение
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
 try {
                FileInputStream inputStream = new FileInputStream(new File(file));
                
            }
             catch (Exception e)
             {

             }




так надо было сделать
...
Рейтинг: 0 / 0
19.08.2019, 20:21
    #39851331
dolcegabana
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javafx выбор файла и его чтение
похоже это особенность явы, но проблема ушла
...
Рейтинг: 0 / 0
19.08.2019, 20:22
    #39851332
dolcegabana
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javafx выбор файла и его чтение
asv79,

Спасибо Вам большое! Следующий шаг надо будет парсить ячейки записывать в базу) но это совсем др история
...
Рейтинг: 0 / 0
19.08.2019, 20:32
    #39851338
asv79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javafx выбор файла и его чтение
dolcegabanaasv79,

Спасибо Вам большое! Следующий шаг надо будет парсить ячейки записывать в базу) но это совсем др история
да не за что, https://o7planning.org/ru/11259/read-write-excel-file-in-java-using-apache-poi

вот тут пишут как это делать
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / javafx выбор файла и его чтение / 18 сообщений из 18, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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