The Excel spreadsheet is a popular file format that allows users to arrange, analyze, and display data in tables. The ability to programmatically interact with Excel files is valuable for automating and integrating its features into software. This is especially beneficial when dealing with extensive datasets, complex calculations, or dynamically generating/updating data. In this article, you will learn how to create, read, or update Excel document in Java using Spire.XLS for Java.
Install Spire.XLS for Java
First, you're required to add the Spire.Xls.jar file as a dependency in your Java program. The JAR file can be downloaded from this link. If you use Maven, you can easily import the JAR file in your application by adding the following code to your project's pom.xml file.
<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>
Create an Excel Document in Java
Spire.XLS for Java offers a variety of classes and interfaces that you can use to create and edit Excel documents. Here is a list of important classes, properties and methods involved in this article.
Member | Description |
Workbook class | Represents an Excel workbook model. |
Workbook.getWorksheets().add() method | Adds a worksheet to workbook. |
Workbook.saveToFile() method | Saves the workbook to an Excel document. |
Worksheet class | Represents a worksheet in a workbook. |
Worksheet.getRange() method | Gets a specific cell or cell range from worksheet. |
Worksheet.insertArray() method | Imports data from an array to worksheet. |
CellRange class | Represents a cell or cell range in worksheet. |
CellRange.setValue() method | Sets the value of a cell. |
CellRange.getValue() method | Gets the value of a cell. |
The following are the steps to create an Excel document from scratch using Spire.XLS for Java.
- Create a Workbook object.
- Add a worksheet using Workbook.getWorksheets().add() method.
- Get a specific cell using Worksheet.getRange().get() method.
- Write data to the cell using CellRange.setValue() method.
- Import data from an array to the worksheet using Worksheet.insertArray() method.
- Save the workbook to an Excel document using Workbook.saveToFile() method.
- 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); } }
Read Data of a Worksheet in Java
The CellRange.getValue() method returns number value or text value of a cell as a string. To get data of a whole worksheet or a cell range, loop through the cells within it. The following are the steps to get data of a worksheet using Spire.XLS for Java.
- Create a Workbook object.
- Load an Excel document using Workbook.loadFromFile() method.
- Get a specific worksheet using Workbook.getWorksheets().get(index) method.
- Get the cell range containing data using Worksheet.getAllocatedRange() method.
- Iterate through the rows and columns to get cells within the range, and return the value of each cell using CellRange.getValue() method.
- 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(); } } }
Update an Excel Document in Java
To change the value of a certain cell, just re-assign a value to it using Worksheet.getRange().setValue() method. The following are the detailed steps.
- Create a Workbook object.
- Load an Excel document using Workbook.LoadFromFile() method.
- Get a specific worksheet through Workbook.Worksheets[index] property.
- Change the value of a particular cell though Worksheet.Range.Value property.
- Save the workbook to an Excel file using Workbook.SaveToFile() method.
- 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); } }
Apply for a Temporary License
If you'd like to remove the evaluation message from the generated documents, or to get rid of the function limitations, please request a 30-day trial license for yourself.