Java: Create, Read, or Update Excel Documents

2023-12-06 03:15:56

Install with Maven

<dependency>
    <groupId>e-iceblue</groupId>
       <artifactId>spire.xls</artifactId>
    <version>14.1.3</version>
</dependency>
    

Related Links

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.
  • Write data to a specific cell using Worksheet.getRange.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);
        }
    }

Java: Create, Read, or Update Excel Documents

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();
            }
        }
    }

Java: Create, Read, or Update Excel Documents

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);
        }
    }

Java: Create, Read, or Update Excel Documents

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.

See Also