Рубрики
Без рубрики

Объединение файлов Excel в Java

В этой статье мы расскажем, как объединить файлы Excel в Java. Помеченные java, объединяйте файлы excel, объединяйте рабочие таблицы.

В этой статье мы представим следующие две возможности объединения файлов Excel в Java:

  1. Объединение нескольких листов Excel в один лист
  2. Объединить несколько файлов Excel в один файл

Библиотека, которой мы пользовались :

Свободный дух. XLS для Java

Прежде чем приступить к работе, пожалуйста, скачайте бесплатный Spire. XLS для пакета Java через по этой ссылке распакуйте пакет и затем импортируйте Spire.Xls.jar из папки lib в ваше приложение.

1.Объедините несколько листов Excel в один лист

Быстрый способ объединить данные из нескольких листов в один лист – использовать DataTable. Свободный дух. XLS для Java предоставляет методы вставить таблицу данных() и экспортировать таблицу данных() , которые позволяют нам быстро экспортировать данные с листа в таблицу данных, а затем вставить таблицу данных в другой лист. Однако этот метод не будет поддерживать форматирование .

import com.spire.data.table.DataTable;
import com.spire.xls.*;

public class MergeWorksheets {
    public static void main(String[] args){
        //Create a workbook
        Workbook workbook = new Workbook();
        //Load an Excel file
        workbook.loadFromFile("Sample.xlsx");

        //Get the first worksheet
        Worksheet sheet1 = workbook.getWorksheets().get(0);

        //Get the second worksheet
        Worksheet sheet2 = workbook.getWorksheets().get(1);
        //Export data in the second worksheet into a data table
        DataTable dt2 = sheet2.exportDataTable();

        //Insert the data table into the first worksheet 
        sheet1.insertDataTable(dt2, true, sheet1.getLastRow() + 1,1);

        //Save the resultant file
        workbook.saveToFile("MergeWorksheets.xlsx", ExcelVersion.Version2013);
    }
}

Если мы хотим сохранить форматирование в рабочих листах, мы можем использовать Диапазон ячеек.копировать() метод, как показано в примере ниже.

import com.spire.xls.*;

public class MergeWorksheets {
    public static void main(String[] args){
        //Create a workbook
        Workbook workbook = new Workbook();
        //Load an Excel file
        workbook.loadFromFile("Sample.xlsx");

        //Get the first worksheet
        Worksheet sheet1 = workbook.getWorksheets().get(0);

        //Get the second worksheet
        Worksheet sheet2 = workbook.getWorksheets().get(1);

        //Copy data along with formatting from sheet2 into sheet1
        sheet2.getAllocatedRange().copy(sheet1.getRange().get(sheet1.getLastRow() +1, 1));

        //Save the resultant file
        workbook.saveToFile("MergeWorksheets.xlsx", ExcelVersion.Version2013);
    }
}

2.Объедините несколько файлов Excel в один файл

Свободный дух. XLS для Java предлагает метод add Copy() для копирования одного листа в файле Excel в другой файл Excel.

import com.spire.xls.*;

public class MergeExcels {
    public static void main(String[] args){
        //Input Excel files
        String[] inputFiles = new String[]{"file1.xlsx","file2.xlsx"};

        //Create a new workbook
        Workbook newBook = new Workbook();
        //Clear all worksheets
        newBook.getWorksheets().clear();

        //Create another workbook
        Workbook tempBook = new Workbook();

        //Loop through the Excel files, copy worksheets in each Excel file into the new workbook
        for (String file : inputFiles)
        {
            tempBook.loadFromFile(file);
            for (Worksheet sheet : (Iterable)tempBook.getWorksheets())
            {
                newBook.getWorksheets().addCopy(sheet, WorksheetCopyType.CopyAll);
            }
        }

        //Save the resultant file
        newBook.saveToFile("MergeFiles.xlsx", ExcelVersion.Version2013);
    }
}

Оригинал: “https://dev.to/eiceblue/merge-excel-files-in-java-2lo2”