Оглавление
Установить с помощью Maven
<dependency> <groupId>e-iceblue</groupId> <artifactId>spire.xls.free</artifactId> <version>5.1.0</version> </dependency>
Ссылки по теме
Возможность чтения данных из файлов Excel может быть полезна в различных отраслях и сценариях, где требуется доступ и использование структурированных данных. Читая данные из Excel, вы можете извлекать информацию, выполнять вычисления и анализировать данные с помощью языков программирования или специализированных инструментов. Этот процесс обеспечивает эффективное манипулирование данными и облегчает такие задачи, как создание отчетов, выполнение статистического анализа и автоматизация рабочих процессов.
В этой статье мы познакомим вас с тем, как читать файлы Excel на Java с помощью E-iceblue Бесплатная библиотека Java Excel. Включены следующие подтемы.
- Чтение значения ячейки в Java
- Чтение данных диапазона ячеек в Java
- Чтение данных всего листа в Java
- Чтение формулы в ячейке в Java
- Чтение результата формулы в ячейке в Java
Бесплатная библиотека Java для чтения Excel
Бесплатная версия Spire.XLS for Java, предоставляемая E-iceblue Inc., представляет собой небольшую, но мощную библиотеку Java, которая позволяет разработчикам легко создавать, читать и изменять файлы Excel XLS и XLSX. Хотя это общественная версия коммерческой библиотеки Spire.XLS for Java, она предлагает практически все возможности работы с Excel, за исключением преобразования форматов файлов. Пользователи могут использовать его, чтобы легко создавать документ Excel с нуля или выполнять операции с существующими документами, например извлекать данные из листа.
Чтобы установить библиотеку из репозитория Maven, просто добавьте следующую конфигурацию в файл pom.xml вашего проекта.
<repositories> <repository> <id>com.e-iceblue</id> <name>e-iceblue</name> <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url> </repository> </repositories> <dependencies> <dependency> <groupId>e-iceblue</groupId> <artifactId>spire.xls.free</artifactId> <version>5.1.0</version> </dependency> </dependencies>
Альтернативно, вы можете скачать бесплатно Spire.XLS for Java и вручную импортируйте файл jar как зависимость в ваше приложение Java.
Чтение значения ячейки в Java
В Free Spire.XLS класс CellRange представляет ячейку или диапазон, а метод getValue() этого класса извлекает значение определенной ячейки, которое может быть текстом, числом или формулой. Выполните следующие шаги, чтобы прочитать значение ячейки в Java.
- Создайте объект Workbook.
- Загрузите файл Excel в объект Workbook.
- Получите конкретный лист из объекта Workbook.
- Получите определенный диапазон ячеек (в данном случае ячейку C6) с листа.
- Получите значение ячейки с помощью метода getValue().
- Java
import com.spire.xls.CellRange; import com.spire.xls.Workbook; import com.spire.xls.Worksheet; public class ReadCellValue { public static void main(String[] args) { // Create a Workbook object Workbook wb = new Workbook(); // Load an Excel file wb.loadFromFile("C:\\Users\\Administrator\\Desktop\\Score Sheet.xlsx"); //Get a specific worksheet Worksheet sheet = wb.getWorksheets().get(0); // Get a specific cell CellRange certainCell = sheet.getCellRange("C6"); // Get the value of the cell String cellValue = certainCell.getValue(); // Print out result System.out.println("C6 has the value: " + cellValue); } }
Чтение данных диапазона ячеек в Java
Теперь, когда мы узнали, как получить значение конкретной ячейки, можно легко извлечь данные из области ячейки, перебирая ячейки одну за другой. Шаги для чтения данных определенного диапазона ячеек следующие.
- Создайте объект Workbook.
- Загрузите файл Excel в объект Workbook.
- Получите конкретный лист из объекта Workbook.
- Получите диапазон ячеек (в данном случае A3:F6) с листа.
- Перебирайте ячейки диапазона, используя вложенные циклы.
- Внутри каждой итерации получите определенную ячейку в диапазоне.
- Получите значение ячейки с помощью метода getValue().
- Повторите процедуру для всех ячеек диапазона.
- Java
import com.spire.xls.CellRange; import com.spire.xls.Workbook; import com.spire.xls.Worksheet; public class ReadCellRange { public static void main(String[] args) { // Create a Workbook object Workbook wb = new Workbook(); // Load an Excel file wb.loadFromFile("C:\\Users\\Administrator\\Desktop\\Score Sheet.xlsx"); //Get a specific worksheet Worksheet sheet = wb.getWorksheets().get(0); // Get a cell range CellRange cellRange = sheet.getCellRange("A3:F6"); // Iterate through the cells in the range for (int i = 0; i < cellRange.getRowCount(); i++) { for (int j = 0; j < cellRange.getColumnCount(); j++) { // Get a specific cell CellRange certainCell = cellRange.get(3 + i, 1 + j); // Get the value of the cell String cellValue = certainCell.getValue(); // Print out result System.out.print(cellValue + " "); } System.out.println(); } } }
Чтение данных всего листа в Java
Чтобы определить диапазон ячеек, содержащих данные, используйте метод Worksheet.getAllocatedRange(), который генерирует объект CellRange. Перебирая ячейки в диапазоне, вы можете получить доступ к каждой ячейке и соответствующему ей значению. Вот шаги для чтения данных всего листа в Java.
- Создайте объект Workbook.
- Загрузите существующий файл Excel в объект Workbook.
- Получите первый лист из объекта Workbook.
- Используйте метод getAllocatedRange() на листе, чтобы получить диапазон ячеек, содержащий данные.
- Переберите каждую строку в найденном диапазоне, используя цикл for.
- В пределах каждой итерации строки выполните итерацию по каждому столбцу в найденном диапазоне, используя еще один цикл for.
- Получите определенную ячейку в найденном диапазоне с помощью метода get(), передав индексы строки и столбца.
- Получите значение ячейки с помощью метода getValue().
- Повторите процедуру для всех ячеек диапазона.
- Java
import com.spire.xls.CellRange; import com.spire.xls.Workbook; import com.spire.xls.Worksheet; public class ReadWorksheet { public static void main(String[] args) { //Create a Workbook object Workbook wb = new Workbook(); //Load an existing Excel file wb.loadFromFile("C:\\Users\\Administrator\\Desktop\\Score Sheet.xlsx"); //Get the first worksheet Worksheet sheet = wb.getWorksheets().get(0); //Get the cell range containing data CellRange locatedRange = sheet.getAllocatedRange(); //Iterate through the rows for (int i = 0; i < locatedRange.getRows().length; i++) { //Iterate through the columns for (int j = 0; j < locatedRange.getColumnCount(); j++) { // Get a specific cell CellRange certainCell = locatedRange.get(i + 1, j + 1); // Get the value of the cell String cellValue = certainCell.getValue(); // Print out result System.out.print(cellValue + " "); } System.out.println(); } } }
Чтение формулы в ячейке в Java
Если ячейка содержит формулу, вы можете получить ее с помощью метода getValue() или метода getFormula(). Вот шаги для чтения формулы ячейки в Java.
- Создайте объект Workbook.
- Загрузите файл Excel в объект Workbook.
- Получите конкретный лист из объекта Workbook.
- Получите конкретную ячейку (в данном случае D4) с листа.
- Проверьте, есть ли в ячейке формула, используя метод hasFormula().
- Если в ячейке есть формула, получите ее с помощью метода getFormula().
- Java
import com.spire.xls.CellRange; import com.spire.xls.Workbook; import com.spire.xls.Worksheet; public class ReadFormula { public static void main(String[] args) { // Create a Workbook object Workbook wb = new Workbook(); // Load an Excel file wb.loadFromFile("C:\\Users\\Administrator\\Desktop\\Formula.xlsx"); //Get a specific worksheet Worksheet sheet = wb.getWorksheets().get(0); // Get a specific cell CellRange certainCell = sheet.getCellRange("D4"); // Determine if the cell has formula or not if (certainCell.hasFormula()){ // Get the formula of the cell String formula = certainCell.getFormula(); // Print out result System.out.println("D4 has a formula: " + formula); } } }
Чтение результата формулы в ячейке в Java
Во многих случаях пользователей в первую очередь интересуют результаты, полученные с помощью формул, а не сами формулы. Чтобы получить результат формулы, используйте метод getFormulaValue(). Ниже приведены шаги для чтения результата формулы в ячейке в Java.
- Создайте объект Workbook.
- Загрузите файл Excel в объект Workbook.
- Получите конкретный лист из объекта Workbook.
- Получите конкретную ячейку (в данном случае D4) с листа.
- Проверьте, есть ли в ячейке формула, используя метод hasFormula().
- Если в ячейке есть формула, извлеките результат формулы с помощью метода getFormulaValue() и преобразуйте результат в строковое представление с помощью метода toString().
- Java
import com.spire.xls.CellRange; import com.spire.xls.Workbook; import com.spire.xls.Worksheet; public class ReadFormulaResult { public static void main(String[] args) { // Create a Workbook object Workbook wb = new Workbook(); // Load an Excel file wb.loadFromFile("C:\\Users\\Administrator\\Desktop\\Formula.xlsx"); //Get a specific worksheet Worksheet sheet = wb.getWorksheets().get(0); // Get a specific cell CellRange certainCell = sheet.getCellRange("D4"); // Determine if the cell has formula or not if (certainCell.hasFormula()){ // Get the result of formula String formulaResult = certainCell.getFormulaValue().toString(); // Print out result System.out.println("D4 has a formula and its result is: " + formulaResult); } } }
Заключение
В этом сообщении блога мы объяснили процесс получения данных (текста и чисел) из определенной ячейки, заданного диапазона ячеек или всего листа Excel с помощью Free Spire.XLS for Java. Кроме того, мы обсудили, как определить, содержит ли ячейка формулу, и изучили методы извлечения как самой формулы, так и ее результирующего значения. Будучи профессиональной библиотекой Excel, Free Spire.XLS for Java поддерживает извлечение изображений и OLE-объекты из документов Excel.
Дополнительные уроки можно найти в нашем Руководство по программированию Excel. Если у вас есть какие-либо вопросы, вы можете связаться с нами через Форум Spire.XLS.