Категория

Java: создание, чтение или обновление документов Excel

2023-12-06 03:13:44

Установка с помощью Maven

<dependency>
    <groupId>e-iceblue</groupId>
    <artifactId>spire.xls</artifactId>
    <version>14.1.3</version>
    </dependency>
    

Ссылки по теме

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

Установите Spire.XLS for Java

Во-первых, вам необходимо добавить файл Spire.Xls.jar в качестве зависимости в вашу программу Java. JAR-файл можно скачать по этой ссылке. Если вы используете Maven, вы можете легко импортировать файл JAR в свое приложение, добавив следующий код в файл 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</artifactId>
        <version>14.11.0</version>
    </dependency>
</dependencies>
    

Создать документ Excel на Java

Spire.XLS for Java предлагает множество классов и интерфейсов, которые можно использовать для создания и редактирования документов Excel. Вот список важных классов, свойств и методов, рассматриваемых в этой статье.

Член Описание
Класс рабочей книги Представляет модель книги Excel.
Метод Workbook.getWorksheets().add() Добавляет лист в книгу.
Метод Workbook.saveToFile() Сохраняет книгу в документ Excel.
Класс рабочего листа Представляет лист в книге.
Метод Worksheet.getRange() Получает определенную ячейку или диапазон ячеек из листа.
Метод Worksheet.insertArray() Импортирует данные из массива на лист.
Класс CellRange Представляет ячейку или диапазон ячеек на листе.
Метод CellRange.setValue() Устанавливает значение ячейки.
Метод CellRange.getValue() Получает значение ячейки.

Ниже приведены шаги по созданию документа Excel с нуля с помощью Spire.XLS for Java.

  • Создайте объект книги.
  • Добавьте рабочий лист, используя метод Workbook.getWorksheets().add().
  • Запишите данные в определенную ячейку с помощью метода Worksheet.getRange.setValue().
  • Импортируйте данные из массива на лист с помощью метода Worksheet.insertArray().
  • Сохраните книгу в документ Excel, используя метод Workbook.saveToFile().
  • Java
import com.spire.xls.*;
    
    public class CreateSpreadsheet {
    
        public static void main(String[] args) {
    
            //Create a Workbook object
            Workbook wb = new Workbook();
    
            //Remove default worksheets
            wb.getWorksheets().clear();
    
            //Add a worksheet and name it "Employee"
            Worksheet sheet = wb.getWorksheets().add("Employee");
    
            //Merge the cells between A1 and G1
            sheet.getRange().get("A1:G1").merge();
    
            //Write data to A1 and apply formatting to it
            sheet.getRange().get("A1").setValue("Basic Information of Employees of Huanyu Automobile Company");
            sheet.getRange().get("A1").setHorizontalAlignment(HorizontalAlignType.Center);
            sheet.getRange().get("A1").setVerticalAlignment(VerticalAlignType.Center);
            sheet.getRange().get("A1").getStyle().getFont().isBold(true);
            sheet.getRange().get("A1").getStyle().getFont().setSize(13);
    
            //Set row height of the first row
            sheet.setRowHeight(1,30);
    
            //Create a two-dimensional array
            String[][] twoDimensionalArray = new String[][]{
                    {"Name", "Gender", "Birth Date", "Educational Background", "Contact Number", "Position", "ID"},
                    {"Allen", "Male", "1990-02-10", "Bachelor", "24756854", "Mechanic", "0021"},
                    {"Patrick", "Male", "1985-06-08", "Master", "59863247", "Mechanic", "0022"},
                    {"Jenna", "Female", "1989-11-25", "Bachelor", "79540352", "Sales", "0023"},
                    {"Tommy", "Male", "1988-04-16", "Master", "52014060", "Mechanic", "0024"},
                    {"Christina", "Female", "1998-01-21", "Bachelor", "35401489", "HR", "0025"}
            };
    
            //Import data from DataTable to worksheet
            sheet.insertArray(twoDimensionalArray,2,1);
    
            //Set row height of a range
            sheet.getRange().get("A2:G7").setRowHeight(15);
    
            //Set column width
            sheet.setColumnWidth(2,15);
            sheet.setColumnWidth(3,21);
            sheet.setColumnWidth(4,15);
    
            //Set border style of a range
            sheet.getRange().get("A2:G7").borderAround(LineStyleType.Medium);
            sheet.getRange().get("A2:G7").borderInside(LineStyleType.Thin);
            sheet.getRange().get("A2:G2").borderAround(LineStyleType.Medium);
            sheet.getRange().get("A2:G7").getBorders().setKnownColor(ExcelColors.Black);
    
            //Save to a .xlsx file
            wb.saveToFile("output/NewSpreadsheet.xlsx", FileFormat.Version2016);
        }
    }

Java: Create, Read, or Update Excel Documents

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

Метод CellRange.getValue() возвращает числовое значение или текстовое значение ячейки в виде строки. Чтобы получить данные всего листа или диапазона ячеек, пройдитесь по ячейкам внутри него. Ниже приведены шаги по получению данных листа с помощью Spire.XLS for Java.

  • Создайте объект книги.
  • Загрузите документ Excel с помощью метода Workbook.loadFromFile().
  • Получите конкретный лист, используя метод Workbook.getWorksheets().get(index).
  • Получите диапазон ячеек, содержащий данные, с помощью метода Worksheet.getAllocatedRange().
  • Перебирайте строки и столбцы, чтобы получить ячейки в диапазоне, и возвращайте значение каждой ячейки с помощью метода CellRange.getValue().
  • Java
import com.spire.xls.CellRange;
    import com.spire.xls.Workbook;
    import com.spire.xls.Worksheet;
    
    public class ReadData {
    
        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/NewSpreadsheet.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 data of a specific cell
                    System.out.print(locatedRange.get(i + 1, j + 1).getValue() + "  ");
                }
                System.out.println();
            }
        }
    }

Java: Create, Read, or Update Excel Documents

Обновление документа Excel в Java

Чтобы изменить значение определенной ячейки, просто присвойте ей значение с помощью метода Worksheet.getRange().setValue(). Ниже приведены подробные шаги.

  • Создайте объект книги.
  • Загрузите документ Excel с помощью метода Workbook.LoadFromFile().
  • Получите конкретный лист через свойство Workbook.Worksheets[index].
  • Измените значение определенной ячейки с помощью свойства Worksheet.Range.Value.
  • Сохраните книгу в файл Excel, используя метод Workbook.SaveToFile().
  • Java
import com.spire.xls.ExcelVersion;
    import com.spire.xls.Workbook;
    import com.spire.xls.Worksheet;
    
    public class UpdateExcel {
    
        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/NewSpreadsheet.xlsx");
    
            //Get the first worksheet
            Worksheet sheet = wb.getWorksheets().get(0);
    
            //Change the value of a specific cell
            sheet.getRange().get("A1").setValue("Updated Value");
    
            //Save to file
            wb.saveToFile("output/Updated.xlsx", ExcelVersion.Version2016);
        }
    }

Java: Create, Read, or Update Excel Documents

Подать заявку на временную лицензию

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

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