JExcel API - Lesen und Schreiben einer Excel-Datei in Java

JExcel API - Lesen und Schreiben von Excel-Dateien in Java

excel-logo-new

In diesem Artikel wird erläutert, wie Sie eine Excel-Datei mit der JExcel-API lesen und schreiben, einer einfachen Bibliothek, die häufig für einfache Vorgänge verwendet wird, bei denen kein hohes Maß an Formatierung und komplexe formelbasierte Vorgänge erforderlich sind.

P.S Tested with JExcel API – 2.6.12

1. Laden Sie JExcel herunter

Maven Benutzer.

pom.xml

   
         net.sourceforge.jexcelapi
         jxl
         2.6.12
   

Oder laden Sie direkt beithis location herunter

2. Excel-Datei schreiben

JExcel-API-Beispiel, das Ihnen zeigt, wie Sie eine Excel-Datei erstellen und Daten in diese schreiben.

ExcelWrite.java

package com.techfou;

import jxl.Workbook;
import jxl.write.*;
import jxl.write.Number;

import java.io.File;
import java.io.IOException;

public class ExcelWrite {

    private static final String EXCEL_FILE_LOCATION = "C:\\temp\\MyFirstExcel.xls";

    public static void main(String[] args) {

        //1. Create an Excel file
        WritableWorkbook myFirstWbook = null;
        try {

            myFirstWbook = Workbook.createWorkbook(new File(EXCEL_FILE_LOCATION));

            // create an Excel sheet
            WritableSheet excelSheet = myFirstWbook.createSheet("Sheet 1", 0);

            // add something into the Excel sheet
            Label label = new Label(0, 0, "Test Count");
            excelSheet.addCell(label);

            Number number = new Number(0, 1, 1);
            excelSheet.addCell(number);

            label = new Label(1, 0, "Result");
            excelSheet.addCell(label);

            label = new Label(1, 1, "Passed");
            excelSheet.addCell(label);

            number = new Number(0, 2, 2);
            excelSheet.addCell(number);

            label = new Label(1, 2, "Passed 2");
            excelSheet.addCell(label);

            myFirstWbook.write();


        } catch (IOException e) {
            e.printStackTrace();
        } catch (WriteException e) {
            e.printStackTrace();
        } finally {

            if (myFirstWbook != null) {
                try {
                    myFirstWbook.close();
                } catch (IOException e) {
                    e.printStackTrace();
                } catch (WriteException e) {
                    e.printStackTrace();
                }
            }


        }

    }

}

Bei der Ausgabe wird eine Excel-Datei mit folgendem Inhalt erstellt:

jexcel-write-excel

3. Excel-Datei lesen

Beispiel zum Lesen der obigen Excel-Datei.

ExcelRead.java

package com.techfou;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

import java.io.File;
import java.io.IOException;

public class ExcelRead {

    private static final String EXCEL_FILE_LOCATION = "C:\\temp\\MyFirstExcel.xls";

    public static void main(String[] args) {

        Workbook workbook = null;
        try {

            workbook = Workbook.getWorkbook(new File(EXCEL_FILE_LOCATION));

            Sheet sheet = workbook.getSheet(0);
            Cell cell1 = sheet.getCell(0, 0);
            System.out.print(cell1.getContents() + ":");    // Test Count + :
            Cell cell2 = sheet.getCell(0, 1);
            System.out.println(cell2.getContents());        // 1

            Cell cell3 = sheet.getCell(1, 0);
            System.out.print(cell3.getContents() + ":");    // Result + :
            Cell cell4 = sheet.getCell(1, 1);
            System.out.println(cell4.getContents());        // Passed

            System.out.print(cell1.getContents() + ":");    // Test Count + :
            cell2 = sheet.getCell(0, 2);
            System.out.println(cell2.getContents());        // 2

            System.out.print(cell3.getContents() + ":");    // Result + :
            cell4 = sheet.getCell(1, 2);
            System.out.println(cell4.getContents());        // Passed 2

        } catch (IOException e) {
            e.printStackTrace();
        } catch (BiffException e) {
            e.printStackTrace();
        } finally {

            if (workbook != null) {
                workbook.close();
            }

        }

    }

}

Der obige Code ist fast selbst verständlich. Jede Zelle oder jedes Blatt wird in Java als Objekt zugeordnet. Im obigen Code haben wir das JExcel-Glas verwendet, um das Arbeitsblatt zu schreiben. Durch Ausführen des Codes wird die Ausgabe wie folgt erhalten:

Test Count:1
Result:Passed
Test Count:2
Result:Passed 2

4. Formatierung zur Excel-Datei hinzufügen

Ein Beispiel kann durch Hinzufügen einer Formatierung weiter verbessert werden. Ein kurzer Code zum Hinzufügen von Formatierungen wurde unten angezeigt:

ExcelFormat .java

package com.example;

import jxl.Workbook;
import jxl.write.*;
import jxl.write.Number;

import java.io.File;
import java.io.IOException;

public class ExcelFormat {

    private static final String EXCEL_FILE_LOCATION = "C:\\temp\\MyFormattedExcel.xls";

    public static void main(String[] args) {

        //1. Create an Excel file
        WritableWorkbook mySecondWbook = null;
        try {

            mySecondWbook = Workbook.createWorkbook(new File(EXCEL_FILE_LOCATION));
            WritableSheet myFirstSheet = mySecondWbook.createSheet("Sheet 1", 0);

            WritableCellFormat cFormat = new WritableCellFormat();
            WritableFont font = new WritableFont(WritableFont.ARIAL, 16, WritableFont.BOLD);
            cFormat.setFont(font);
            Label label = new Label(0, 0, "Test Count", cFormat);
            myFirstSheet.addCell(label);
            Number number = new Number(0, 1, 1);
            myFirstSheet.addCell(number);

            label = new Label(1, 0, "Result", cFormat);
            myFirstSheet.addCell(label);
            label = new Label(1, 1, "Passed");
            myFirstSheet.addCell(label);

            number = new Number(0, 2, 2);
            myFirstSheet.addCell(number);

            label = new Label(1, 2, "Passed 2");
            myFirstSheet.addCell(label);

            mySecondWbook.write();

        } catch (WriteException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {

            if (mySecondWbook != null) {
                try {
                    mySecondWbook.close();
                } catch (IOException e) {
                    e.printStackTrace();
                } catch (WriteException e) {
                    e.printStackTrace();
                }
            }


        }


    }

}

Ausgabe

jexcel-format-excel

Der Code formatiert den Header in Arial, 16px, Fettschrift. Es stehen mehrere andere unterstützte Schriftarten und -größen zur Verfügung. Es gibt viele zusätzliche Funktionen von JExcel, mit denen Sie ein noch verfeinertes und gut formatiertes Excel erstellen können. Dieser Artikel gibt Ihnen einen Vorsprung. Weitere Informationen finden Sie unter den folgenden Links in den Referenzen.