Категория

Бесплатное решение: чтение файлов Excel на Java

2024-01-25 06:46:59

Возможность чтения данных из файлов Excel может быть полезна в различных отраслях и сценариях, где требуется доступ и использование структурированных данных. Читая данные из Excel, вы можете извлекать информацию, выполнять вычисления и анализировать данные с помощью языков программирования или специализированных инструментов. Этот процесс обеспечивает эффективное манипулирование данными и облегчает такие задачи, как создание отчетов, выполнение статистического анализа и автоматизация рабочих процессов.

В этой статье мы познакомим вас с тем, как читать файлы Excel на Java с помощью E-iceblue Бесплатная библиотека Java Excel. Включены следующие подтемы.

Бесплатная библиотека 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.

  1. Создайте объект Workbook.
  2. Загрузите файл Excel в объект Workbook.
  3. Получите конкретный лист из объекта Workbook.
  4. Получите определенный диапазон ячеек (в данном случае ячейку C6) с листа.
  5. Получите значение ячейки с помощью метода 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);
        }
    }

Free Solution: Read Excel Files in Java

Чтение данных диапазона ячеек в Java

Теперь, когда мы узнали, как получить значение конкретной ячейки, можно легко извлечь данные из области ячейки, перебирая ячейки одну за другой. Шаги для чтения данных определенного диапазона ячеек следующие.

  1. Создайте объект Workbook.
  2. Загрузите файл Excel в объект Workbook.
  3. Получите конкретный лист из объекта Workbook.
  4. Получите диапазон ячеек (в данном случае A3:F6) с листа.
  5. Перебирайте ячейки диапазона, используя вложенные циклы.
  6. Внутри каждой итерации получите определенную ячейку в диапазоне.
  7. Получите значение ячейки с помощью метода getValue().
  8. Повторите процедуру для всех ячеек диапазона.
  • 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();
            }
        }
    }

Free Solution: Read Excel Files in Java

Чтение данных всего листа в Java

Чтобы определить диапазон ячеек, содержащих данные, используйте метод Worksheet.getAllocatedRange(), который генерирует объект CellRange. Перебирая ячейки в диапазоне, вы можете получить доступ к каждой ячейке и соответствующему ей значению. Вот шаги для чтения данных всего листа в Java.

  1. Создайте объект Workbook.
  2. Загрузите существующий файл Excel в объект Workbook.
  3. Получите первый лист из объекта Workbook.
  4. Используйте метод getAllocatedRange() на листе, чтобы получить диапазон ячеек, содержащий данные.
  5. Переберите каждую строку в найденном диапазоне, используя цикл for.
  6. В пределах каждой итерации строки выполните итерацию по каждому столбцу в найденном диапазоне, используя еще один цикл for.
  7. Получите определенную ячейку в найденном диапазоне с помощью метода get(), передав индексы строки и столбца.
  8. Получите значение ячейки с помощью метода getValue().
  9. Повторите процедуру для всех ячеек диапазона.
  • 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();
            }
        }
    }

Free Solution: Read Excel Files in Java

Чтение формулы в ячейке в Java

Если ячейка содержит формулу, вы можете получить ее с помощью метода getValue() или метода getFormula(). Вот шаги для чтения формулы ячейки в Java.

  1. Создайте объект Workbook.
  2. Загрузите файл Excel в объект Workbook.
  3. Получите конкретный лист из объекта Workbook.
  4. Получите конкретную ячейку (в данном случае D4) с листа.
  5. Проверьте, есть ли в ячейке формула, используя метод hasFormula().
  6. Если в ячейке есть формула, получите ее с помощью метода 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);
            }
        }
    }

Free Solution: Read Excel Files in Java

Чтение результата формулы в ячейке в Java

Во многих случаях пользователей в первую очередь интересуют результаты, полученные с помощью формул, а не сами формулы. Чтобы получить результат формулы, используйте метод getFormulaValue(). Ниже приведены шаги для чтения результата формулы в ячейке в Java.

  1. Создайте объект Workbook.
  2. Загрузите файл Excel в объект Workbook.
  3. Получите конкретный лист из объекта Workbook.
  4. Получите конкретную ячейку (в данном случае D4) с листа.
  5. Проверьте, есть ли в ячейке формула, используя метод hasFormula().
  6. Если в ячейке есть формула, извлеките результат формулы с помощью метода 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);
            }
        }
    }

Free Solution: Read Excel Files in Java

Заключение

В этом сообщении блога мы объяснили процесс получения данных (текста и чисел) из определенной ячейки, заданного диапазона ячеек или всего листа Excel с помощью Free Spire.XLS for Java. Кроме того, мы обсудили, как определить, содержит ли ячейка формулу, и изучили методы извлечения как самой формулы, так и ее результирующего значения. Будучи профессиональной библиотекой Excel, Free Spire.XLS for Java поддерживает извлечение изображений и OLE-объекты из документов Excel.

Дополнительные уроки можно найти в нашем Руководство по программированию Excel. Если у вас есть какие-либо вопросы, вы можете связаться с нами через Форум Spire.XLS.

Смотрите также