Оглавление
Установить с помощью 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.