@@ -88,45 +88,22 @@ enum TableHeader implements TableHeaderColumn {
88
88
ReportPageFactory reportPageFactory;
89
89
90
90
void parse() {
91
- // Получаем страницу с данными
92
- Object page = getFromExcel(" 1.xlsx" );
93
- // ... или page = getFromXml("1.xml");
94
- // ... или page = getFromCsv("1.csv");
95
-
96
- // Используем бин ReportPageFactory для построения абстракции
97
- ReportPage reportPage = reportPageFactory. create(page);
91
+ // Получаем страницу с данными. Используем бин ReportPageFactory для построения абстракции
92
+ ReportPage reportPage = reportPageFactory. create(" 1.xlsx" );
93
+ // ... или reportPageFactory.create("1.xml");
94
+ // ... или reportPageFactory.create("1.csv");
98
95
99
96
// Метод найдет ячейку с текстом "Таблица 1",
100
- // воспринимает следующую за ней строку как заголовок таблицы,
101
- // из последующих строк (до пустой строки или конца файла) извлекаются данные
102
- Table table = reportPage. create(" Таблица 1" , TableHeader . class); // метод использует бин ExcelTableFactory для создания таблицы
97
+ // воспринимает следующую за ней строку как заголовок таблицы (который описан через enum TableHeader).
98
+ // Из последующих строк (до пустой строки или конца файла) извлекаются данные
99
+ // (метод использует бин ExcelTableFactory для создания таблицы Table на основе ReportPage)
100
+ Table table = reportPage. create(" Таблица 1" , TableHeader . class);
103
101
104
- // Извлекаем и обрабатываем данные из строк таблицы
102
+ // Итерируемся по строкам таблицы и извлекаем ячейки из строк по заголовку таблицы
105
103
table. stream()
106
104
.forEach(row - > {
107
105
String product = row. getStringCellValue(TableHeader . PRODUCT );
108
106
BigDecimal price = getBigDecimalCellValue(TableHeader . PRICE );
109
107
});
110
108
}
111
109
```
112
- Пример реализации методов для чтения файлов форматов excel, xml, csv:
113
- ``` java
114
- Sheet getFromExcel(String fileName) {
115
- Path path = Paths . get(fileName);
116
- try (InputStream is = Files . newInputStream(path)) {
117
- Workbook book = new XSSFWorkbook (is); // открываем Excel файл
118
- Sheet sheet = book. getSheetAt(0 ); // используем 1-ый лист Excel файла для поиска таблицы
119
- }
120
- }
121
-
122
- Workbook getFromXml(String fileName) {
123
- ExcelReader reader = new ExcelReader ();
124
- return reader. getWorkbook(fileName); // открываем Excel таблицу из .xml файла
125
- }
126
-
127
- String [][] getFromCsv(String fileName) {
128
- File file = new File (fileName);
129
- CsvParser parser = new CsvParser (new CsvParserSettings ());
130
- return parser. parseAll(file). toArray(new String [0 ][]); // открываем таблицу из .csv файла
131
- }
132
- ```
0 commit comments