Как получить значение из определенной ячейки файла xlsx с помощью java apache poi
Я пишу java-программу для чтения листа excel (xlsx) с помощью apache poi. Я могу выполнять итерацию по всем ячейкам и получать все значения. Но я не могу получить конкретную ценность ячейки, скажем, E10. Есть ли способ найти это?
Пожалуйста, см. Код, который я использовал для итерации по всем ячейкам.
package application; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.Iterator; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class ReadFromXLSX { public static void readXLSXFile() throws IOException { InputStream ExcelFileToRead = new FileInputStream("C:\\Test.xlsx"); XSSFWorkbook wb = new XSSFWorkbook(ExcelFileToRead); XSSFWorkbook test = new XSSFWorkbook(); XSSFSheet sheet = wb.getSheetAt(0); XSSFRow row; XSSFCell cell; Iterator rows = sheet.rowIterator(); while (rows.hasNext()) { row=(XSSFRow) rows.next(); Iterator cells = row.cellIterator(); while (cells.hasNext()) { cell=(XSSFCell) cells.next(); if (cell.getCellType() == XSSFCell.CELL_TYPE_STRING) { System.out.print(cell.getStringCellValue()+" "); } else if(cell.getCellType() == XSSFCell.CELL_TYPE_NUMERIC) { System.out.print(cell.getNumericCellValue()+" "); } else { } } System.out.println(); } } }
- Клонирование стиля POI от листа к другому
- Прочитайте цвет из пустой ячейки в Excel на Java с помощью Apache POI
- Как проверить текст ячейки зачеркнуто или нет в .xlsx файле, используя apache poi
- преобразование рабочего листа в файл xlsx с помощью java
- InvalidFormatException в Java POI
- poi не может записывать данные в .xlsx
- Как читать формат времени от xls / xlsx от Apache POI 3.9?
- Как использовать addMergedRegion apache poi?
- Чтение защищенного паролем файла XLSM с использованием Apache POI
- Селен и предел
- Различные выходные DOC, Excel и PDF в Jasper?
- DataBarFormatting, setWidthMin по умолчанию 10% в excel output (когда i getWidthMin дает 0 и я не могу установитьWidthMin на любое другое значение)
- org.apache.poi.EmptyFileException: предоставленный файл был пуст (с нулевым байтом)
Например, чтобы получить E10 первого листа:
wb.getSheetAt(0).getRow(9).getCell(4);
Примечание: вычесть один из них, потому что индексы основаны на нуле.
Вы также можете использовать этот метод удобства для сопоставления E с 4.
wb.getSheetAt(0).getRow(9).getCell(CellReference.convertColStringToIndex("E"));
XSSFSheet имеет метод getRow (int rownum). Он возвращает логическую строку (на основе 0). Если вы попросите строку, которая не определена, вы получите нуль. Это означает, что строка 4 представляет пятую строку на листе.
Как только вы получите строку, вы можете вызвать метод getCell (int cellnum) объекта XSSFRow. Он возвращает ячейку в указанном индексе (на основе 0).
Чтобы получить значение из определенной ячейки в excel, вы можете использовать приведенную ниже строку кода.
wb.getSheetAt(0).getRow(1).getCell(1);