В этой статье мы представим следующие две возможности объединения файлов Excel в Java:
- Объединение нескольких листов Excel в один лист
- Объединить несколько файлов 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”