Экспорт данных в Excel на Java

Вы можете легко экспортировать данные в Microsoft Excel из различных доступных источников, таких как JSON и CSV. Как разработчик Java, вы можете программно экспортировать данные из массивов, списков объектов, JSON и CSV в документы Excel. В этой статье вы узнаете, как экспортировать данные в Excel с помощью Java.

В этой статье обсуждаются/рассматриваются следующие темы:

Java API для экспорта данных

Для экспорта данных в Excel я буду использовать Aspose.Cells for Java API. Это мощный API для работы с электронными таблицами, который позволяет создавать, редактировать или преобразовывать файлы Excel в приложениях Java. API позволяет выполнять функции автоматизации Excel программно, без использования приложения Microsoft Excel.

Вы можете загрузить JAR API или просто добавить следующую конфигурацию pom.xml в свое Java-приложение на основе Maven, чтобы попробовать приведенные ниже примеры кода.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-cells</artifactId>
    <version>21.8</version>
</dependency>

Экспорт массива в Excel в Java

Вы можете легко экспортировать данные из одномерного массива или двумерного массива в документ Excel. Массив может быть ссылочного типа или типа значения. Вы можете экспортировать данные из массива в Excel, выполнив простые шаги, указанные ниже:

  • Создайте экземпляр класса Workbook.
  • Получить рабочий лист в экземпляре класса Worksheet
  • Создайте массив, содержащий строковые значения
  • Вызовите метод importArray() с массивом
  • Сохраните выходной файл, вызвав метод save() класса Workbook.

В следующем примере кода показано, как экспортировать массив строк в Excel с помощью Java.

// Инициализировать объект рабочей книги
Workbook workbook = new Workbook();

// Получение ссылки на рабочий лист
Worksheet worksheet = workbook.getWorksheets().get(0);

// Создание массива, содержащего имена в виде строковых значений
String[] names = new String[] { "Laurence Chen", "Roman Korchagin", "Kyle Huang" };

// Экспорт массива имен в первую строку и первый столбец по вертикали
worksheet.getCells().importArray(names, 0, 0, true);

// Сохранение файла Excel
workbook.save("C:\\Files\\output.xlsx");
Экспорт массива в Excel в Java

Экспорт массива в Excel в Java

Класс Workbook API является основным классом для создания электронной таблицы Excel. Он предоставляет функциональные возможности для открытия и сохранения собственных файлов Excel. Метод save() этого класса используется для сохранения выходного файла по указанному пути к файлу.

Класс Worksheet представляет один рабочий лист и предоставляет функциональные возможности для работы с ячейками и строками.

Метод importArray() класса Cells экспортирует массив строк на рабочий лист. Он принимает следующие входные параметры:

  • stringArray: массив строковых значений.
  • firstRow: номер строки первой ячейки для экспорта.
  • firstColumn: номер столбца первой ячейки для экспорта.
  • isVertical: указывает, следует ли экспортировать данные вертикально или горизонтально.

API также предоставляет перегруженные версии метода importArray() для экспорта массива целых или двойных чисел на рабочий лист.

Экспорт двумерного массива в Excel

Точно так же вы можете экспортировать двумерный массив в файл Excel. В следующем примере кода показано, как экспортировать двумерный массив в файл Excel в Java.

// Инициализировать объект рабочей книги
Workbook workbook = new Workbook();

// Получение ссылки на рабочий лист
Worksheet worksheet = workbook.getWorksheets().get(0);

// Создание двумерного массива целых чисел
int[][] array2D = { 
  { 1, 2 }, 
  { 3, 4 }, 
  { 5, 6 }, 
  { 7, 8 } 
};

// Экспорт массива имен в первую строку и первый столбец по вертикали
worksheet.getCells().importArray(array2D, 0, 0);

// Сохранение файла Excel
workbook.save("C:\\Files\\output.xlsx");
Экспорт двумерного массива в Excel

Экспорт двумерного массива в Excel

Класс Cells предоставляет метод importArray() для экспорта двумерного массива целых чисел на рабочий лист. API также предоставляет перегруженные версии этого метода для экспорта двумерного массива строк или дублирования в рабочий лист.

Экспорт ArrayList в Excel в Java

Вы можете экспортировать данные из ArrayList в Excel, выполнив шаги, указанные ниже:

  • Создайте экземпляр класса Workbook.
  • Получить рабочий лист в экземпляре класса Worksheet
  • Создайте список массивов, содержащий строковые значения
  • Вызовите метод importArrayList() со списком массивов
  • Сохраните выходной файл, вызвав метод save() класса Workbook.

В следующем примере кода показано, как экспортировать ArrayList в Excel на Java.

// Инициализировать объект рабочей книги
Workbook workbook = new Workbook();

// Получение ссылки на рабочий лист
Worksheet worksheet = workbook.getWorksheets().get(0);

// Создание экземпляра объекта ArrayList
ArrayList<String> list = new ArrayList<String>();

// Добавьте несколько имен в список в виде строковых значений
list.add("Laurence Chen");
list.add("Roman Korchagin");
list.add("Kyle Huang");
list.add("Tommy Wang");

// Экспорт содержимого ArrayList по вертикали в первую строку и первый столбец рабочего листа. 
worksheet.getCells().importArrayList(list, 0, 0, true);

// Сохранение файла Excel
workbook.save("C:\\Files\\Output.xlsx");
Экспорт списка массивов в Excel в Java

Экспорт ArrayList в Excel в Java

Метод importArrayList() класса Cells экспортирует массив данных ArrayList на рабочий лист. Он принимает четыре параметра, включая ArrayList данных. Другими параметрами являются firstRow, firstColumn и isVertical.

Экспорт коллекции пользовательских объектов в Excel на Java

Вы можете экспортировать данные из коллекции настраиваемых объектов в Excel, выполнив указанные ниже действия.

  • Создайте экземпляр класса Workbook.
  • Получить рабочий лист в экземпляре класса Worksheet
  • Создайте список массивов пользовательских объектов
  • Вызвать метод importCustomObjects() со списком массивов
  • Сохраните выходной файл, вызвав метод save() класса Workbook.

В следующем примере кода показано, как экспортировать коллекцию настраиваемых объектов в Excel на Java.

// Инициализировать новую книгу
Workbook book = new Workbook();

// Получение ссылки на рабочий лист
Worksheet sheet = book.getWorksheets().get(0);

// Определить ArrayList лиц
List<Person> list = new ArrayList<Person>();

list.add(new Person("Mike", 25, "Software Engineer"));
list.add(new Person("Steve", 30, "Doctor"));
list.add(new Person("Billy", 35, "Teacher"));

// Мы выбираем только столбцы «Имя» и «Возраст», а не все, для экспорта на лист.         
sheet.getCells().importCustomObjects((Collection)list,
    new String[] { "Name", "Age" }, // propertyNames
    true, // isPropertyNameShown
    0, // firstRow
    0, // firstColumn
    list.size(), // Number of objects to be exported
    true, // insertRows
    null, // dateFormatString
    false); // convertStringToNumber

// Сохраните файл Excel
book.save("C:\\Files\\Output.xlsx");
Коллекция пользовательских объектов для Excel в Java

Коллекция пользовательских объектов для Excel в Java

Метод importCustomObjects() класса Cells экспортирует список пользовательских объектов и принимает следующие параметры. API также предоставляет перегруженную версию этого метода, которая принимает меньше параметров.

  • список: коллекция пользовательских объектов
  • propertyName: укажите имя для конкретного свойства для экспорта. Если он равен нулю, он экспортирует все свойства объекта.
  • isPropertyNameShown: указывает, будет ли имя свойства экспортировано в первую строку.
  • firstRow: номер строки первой экспортируемой ячейки.
  • firstColumn: номер столбца первой экспортируемой ячейки.
  • rowNumber: количество экспортируемых строк.
  • insertRows: указывает, добавляются ли дополнительные строки для соответствия данным
  • dataFormatString: строка формата даты для ячеек
  • convertStringToNumber: указывает, будет ли этот метод пытаться преобразовать строку в число.

Экспорт данных в Excel с объединенными ячейками в Java

Вы можете экспортировать данные из коллекции объектов на рабочий лист, содержащий объединенные ячейки, выполнив шаги, указанные ниже:

  • Создайте экземпляр класса Workbook. with template file path
  • Получить рабочий лист в экземпляре класса Worksheet
  • Создать массив списка объектов
  • Создайте экземпляр класса ImportTableOptions.
  • Вызвать метод importCustomObjects() со списком массивов
  • Сохраните выходной файл, вызвав метод save() класса Workbook.

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

// Открытие существующей рабочей книги.
Workbook workbook = new Workbook("C:\\Files\\SampleMergedTemplate.xlsx");

// Получение ссылки на рабочий лист
Worksheet sheet = workbook.getWorksheets().get(0);

// Создание экземпляра объекта ArrayList
List<Product> productList = new ArrayList<Product>();

// Создание коллекции продуктов
for (int i = 0; i < 3; i++)
{
  Product product = new Product(i, "Product - " + i);
    productList.add(product);
}

// Определить параметры импорта таблицы
ImportTableOptions tableOptions = new ImportTableOptions();

// Установите для свойства CheckMergedCells значение true
tableOptions.setCheckMergedCells(true);
tableOptions.setFieldNameShown(false);

// Экспорт данных в шаблон Excel (во второй строке, первом столбце)           
sheet.getCells().importCustomObjects((Collection)productList, 1, 0, tableOptions);

// Сохраните файл Excel
workbook.save("C:\\Files\\Output.xlsx", SaveFormat.XLSX);
Экспорт данных в Excel с объединенными ячейками в Java

Экспорт данных в Excel с объединенными ячейками в Java

Класс ImportTableOptions предоставляет несколько вариантов экспорта данных в ячейки. setCheckMergedCells указывает, проверяются ли объединенные ячейки. Свойство setFieldNameShown указывает, следует ли экспортировать имя поля.

Скопируйте строки и столбцы из одного файла Excel в другой в Java

Вы можете легко скопировать строки и столбцы из одного файла Excel в другой файл программно, выполнив шаги, указанные ниже:

  • Создайте экземпляр класса Workbook. with source workbook input file
  • Создайте экземпляр класса Workbook. for destination workbook
  • Получить исходный и конечный листы в отдельных экземплярах класса Worksheet.
  • Вызовите метод copyRows() целевого листа с ячейками исходного листа.
  • Сохраните выходной файл рабочей книги, вызвав метод save() класса Workbook.

В следующем примере кода показано, как копировать строки и столбцы из одного файла Excel в другой с помощью Java.

// Откройте исходный файл Excel.
Workbook srcWorkbook = new Workbook("C:\\Files\\Source_Workbook.xlsx");

// Создайте целевой файл Excel.
Workbook destWorkbook = new Workbook();

// Получите первый рабочий лист исходной книги.
Worksheet srcWorksheet = srcWorkbook.getWorksheets().get(0);

// Получите первый рабочий лист целевой рабочей книги.
Worksheet desWorksheet = destWorkbook.getWorksheets().get(0);

// Скопируйте все строки первого рабочего листа исходной книги в
// первый рабочий лист рабочей книги назначения.
desWorksheet.getCells().copyRows(srcWorksheet.getCells(), 0, 0, srcWorksheet.getCells().getMaxDisplayRange().getRowCount());

// Сохраните файл Excel.
destWorkbook.save("C:\\Files\\Destination_Workbook.xlsx");	
Скопируйте строки и столбцы из одного файла Excel в другой в Java

Скопируйте строки и столбцы из одного файла Excel в другой в Java

Вы можете копировать определенные строки из одного файла Excel в другой. В следующем примере кода показано, как скопировать определенные строки из одного файла Excel в другой с помощью Java.

// Откройте исходный файл Excel.
Workbook srcWorkbook = new Workbook("C:\\Files\\Source_Workbook.xlsx");

// Создайте целевой файл Excel.
Workbook destWorkbook = new Workbook();

// Получите первый рабочий лист исходной книги.
Worksheet srcWorksheet = srcWorkbook.getWorksheets().get(0);

// Получите первый рабочий лист целевой рабочей книги.
Worksheet desWorksheet = destWorkbook.getWorksheets().get(0);

// Скопируйте вторую строку исходной книги в первую строку целевой книги.
desWorksheet.getCells().copyRow(srcWorksheet.getCells(), 1, 0);

// Скопируйте четвертую строку исходной книги во вторую строку целевой книги.
desWorksheet.getCells().copyRow(srcWorksheet.getCells(), 3, 1);

// Сохраните файл Excel.
destWorkbook.save("C:\\Files\\Destination_Workbook.xlsx");
Скопируйте определенные строки и столбцы из одного файла Excel в другой в Java

Скопируйте определенные строки и столбцы из одного файла Excel в другой в Java

Метод copyRows() копирует данные и форматирует целые строки. В качестве входных параметров для копирования используются ячейки исходного рабочего листа, а также индекс исходной строки, индекс строки назначения и номер скопированной строки. API также предоставляет перегруженные версии этого метода для копирования строк с помощью CopyOptions и PasteOptions.

Точно так же вы можете копировать данные столбцов из одного документа Microsoft Excel в другой, используя методы copyColumn() или copyColumns().

Экспорт данных JSON в Excel в Java

Вы можете легко экспортировать данные из файла JSON в Excel, выполнив шаги, указанные ниже:

  • Создайте экземпляр класса Workbook.
  • Получить рабочий лист в экземпляре класса Worksheet
  • Чтение JSON-файла
  • Создайте экземпляр класса CellsFactory.
  • Инициируйте стиль, вызвав метод createStyle().
  • Установите различные свойства стиля, такие как выравнивание по горизонтали, цвет шрифта и т. д.
  • Создайте экземпляр класса JsonLayoutOptions.
  • Установите стиль заголовка с помощью объекта стиля
  • Установить массив как свойство таблицы в true
  • Вызовите метод JsonUtility.importData() с входными данными JSON и JsonLayoutOptions.
  • Сохраните выходной файл, вызвав метод save() класса Workbook.

В следующем примере кода показано, как экспортировать данные из файла JSON в Excel с помощью Java.

// Создание экземпляра объекта Workbook
Workbook workbook = new Workbook();
Worksheet worksheet = workbook.getWorksheets().get(0);

// Чтение JSON-файла
File file = new File("C:\\Files\\sample.json");
BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
    String jsonInput = "";
    String tempString;
    while ((tempString = bufferedReader.readLine()) != null) {
      jsonInput = jsonInput + tempString; 
    }
    bufferedReader.close();

// Установить стили
CellsFactory factory = new CellsFactory();
Style style = factory.createStyle();
style.setHorizontalAlignment(TextAlignmentType.CENTER);
style.getFont().setColor(Color.getCyan());
style.getFont().setBold(true);

// Установить JsonLayoutOptions
JsonLayoutOptions options = new JsonLayoutOptions();
options.setTitleStyle(style);
options.setArrayAsTable(true);

// Экспорт данных JSON
JsonUtility.importData(jsonInput, worksheet.getCells(), 0, 0, options);

// Сохранить файл Excel
workbook.save("C:\\Files\\Output.xlsx");
{
  "quiz": {
    "sport": {
      "q1": {
        "question": "Which one is correct team name in NBA?",
        "answer": "Huston Rocket"
      }
    },
    "maths": {
      "q1": {
        "question": "5 + 7 = ?",
        "answer": "12"
      },
      "q2": {
        "question": "12 - 8 = ?",
        "answer": "4"
      }
    }
  }
}
Экспорт данных JSON в Excel в Java

Экспорт данных JSON в Excel в Java

Класс CellsFactory создает экземпляры классов модели Cells. Метод createStyle() этого класса создает новый объект стиля класса Style. Класс Style позволяет настроить стиль отображения документа Excel, например шрифт, цвет, выравнивание, границы и т. д.

Класс JsonLayoutOptions предоставляет параметры типа макета JSON. Метод setTitleStyle этого класса используется для установки определенного стиля заголовка. Метод setArrayAsTable позволяет обрабатывать массив как таблицу.

API предоставляет класс JsonUtility для обработки JSON. Метод importData() этого класса экспортирует строку JSON и принимает следующие параметры:

  • json: строка JSON
  • клетки: Клетки
  • row: индекс строки
  • столбец: индекс столбца
  • option: параметры для экспорта строки JSON

Получить данные CSV в Excel с помощью Java

Вы можете экспортировать данные из файла CSV в Excel, выполнив простые шаги, указанные ниже:

  • Создайте экземпляр класса LoadOptions с LoadFormat.
  • Создайте экземпляр класса Workbook. with CSV file path and LoadOptions object
  • Вызовите метод save() класса Workbook и сохраните выходной файл.

В следующем примере кода показано, как экспортировать данные из CSV-файла в Excel с помощью Java.

// Инициализируйте LoadOptions с помощью CSV LoadFormat.
LoadOptions loadOptions = new LoadOptions(LoadFormat.CSV);

// Откройте файл CSV как объект рабочей книги
Workbook workbook = new Workbook("C:\\Files\\Sample.csv", loadOptions);

// Сохраните файл как документ Excel.
workbook.save("C:\\Files\\Output.xlsx");
id,language,edition,author,streetAddress,city,state,postalCode
01,Java,third,Herbert Schildt,126,San Jone,CA,394221
02,C++,second,EAAAA,126,San Jone,CA,394221
03,.Net,second,E.Balagurusamy,126,San Jone,CA,394221
Экспорт данных CSV в Excel на Java

Экспорт данных CSV в Excel на Java

Класс LoadOptions API предоставляет параметры для загрузки файла. Класс LoadFormat содержит константы, представляющие форматы загружаемых файлов.

Получить бесплатную лицензию

Вы можете попробовать API без ограничений на пробную версию, запросив бесплатную временную лицензию.

Вывод

В этой статье вы узнали, как экспортировать данные в Excel на Java. Вы также узнали, как программно экспортировать данные из файлов Arrays, JSON или CSV в Excel. Кроме того, вы узнали, как копировать строки и столбцы из одного файла Excel в другой файл с помощью Java. Вы можете узнать больше об Aspose.Cells for Java API, используя документацию. В случае каких-либо неясностей, пожалуйста, не стесняйтесь обращаться к нам на форум.

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

Часто задаваемые вопросы

Как экспортировать данные в файл XLSX в Java? Вы можете легко экспортировать данные из массивов, коллекций объектов, JSON и CSV в файл XLSX с помощью простого в интеграции Aspose.Cells for Java API в ваше приложение Java.

Как экспортировать данные из JSON в Excel? Aspose.Cells API предоставляет JsonUtility для экспорта данных из файла JSON в Excel на Java. Вы можете найти простые шаги в разделе [Экспорт данных JSON в Excel на Java] (#Export-JSON-Data-to-Excel-in-Java).

Как экспортировать данные из CSV в Excel в Java? Вы можете просто загрузить файл CSV и сохранить его в формате XLSX, используя API Aspose.Cells. Вы можете найти простые шаги в разделе [Получить данные CSV в Excel с помощью Java] (#Export-CSV-Data-to-Excel-in-Java).