Как создавать или читать документы Excel в Java
Программный доступ к документам Excel открывает целый мир возможностей. Будь то разработчик, создающий приложение для работы с данными, специалист по анализу данных, анализирующий большие массивы данных, или энтузиаст автоматизации, оптимизирующий бизнес-процессы, возможность программного взаимодействия с Excel является невероятно ценной. В этой статье я расскажу о том, как создать или прочитать документ Excel на Java с помощью Free Spire.XLS for Java.
Установка файла Free Spire.Xls.jar
Если вы создали
Maven-проект, вы можете легко импортировать jar в свое приложение, используя
следующие конфигурации. Для проектов, не использующих Maven, загрузите jar-файл
по этой
ссылке и добавьте его в качестве зависимости в свое приложение.
Создание документа Excel на Java
Ниже описаны шаги по созданию документа Excel с нуля с помощью Free Spire.XLS for Java.
- Создайте объект Workbook.
- Добавить рабочий лист с помощью метода Workbook.getWorksheets().add().
- Записать данные в определенную ячейку с помощью метода Worksheet.getRange.setValue().
- Импортировать данные из массива на рабочий лист с помощью метода Worksheet.insertArray().
- Сохранить рабочую книгу в документ Excel с помощью метода Workbook.saveToFile().
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»,
{«Patrick», «Male»,
{«Jenna», «Female»,
{«Tommy», «Male»,
{«Christina», «Female»,
};
//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
Метод CellRange.getValue() возвращает числовое или текстовое значение ячейки в виде строки. Чтобы получить данные всего рабочего листа или диапазона ячеек, необходимо выполнить цикл перебора ячеек в нем. Ниже описаны шаги по получению данных рабочего листа с помощью Free Spire.XLS for Java.
- Создайте объект Workbook.
- Загрузить документ Excel с помощью метода Workbook.loadFromFile().
- Получить конкретный рабочий лист с помощью метода Workbook.getWorksheets().get(index).
- Получить диапазон ячеек, содержащий данные, с помощью метода Worksheet.getAllocatedRange().
- Итерацией по строкам и столбцам получить ячейки внутри диапазона и вернуть значение каждой ячейки с помощью метода CellRange.getValue().
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();
}
}
}