Wenn Sie ein Java -Anwendungsentwickler sind, der mit Excel aus Ihren Java -Anwendungen arbeitet, möchten Sie die Funktionalität der Manipulation von Excel -Daten in Ihrer Anwendung bereitstellen. Mit Excel können Sie das Zellstyling formatieren, den Typ einer Zelle auf verschiedene Datentypen einstellen, eine Zelle mit unterschiedlichen Farben füllen und so weiter. Apache POI dient als Ihre Brücke zwischen Java und Excel und bietet Tools zur Manipulation von Excel XLSX -Dateien programmatisch. In dieser Blog -Serie werden wir die Kunst der Excel -Cell -Manipulation mithilfe von Apache POI in Java vorstellen. Tauchen wir ein und entdecken Sie die Synergie von Code und Tabellenkalkulationen!

Inhaltsverzeichnis

Während des gesamten Blogs werden wir Code -Beispiele und Erläuterungen desselben für Folgendes durchlaufen:

  1. Erstellen von Zellen in Excel -Datei
  2. Erstellen Sie Datumszellen in Excel
  3. Mit verschiedenen Zellenarten arbeiten
  4. Setzen Sie das Erscheinungsbild der Zelle

Mit Zellen in Excel-Datei in Java {.wp-Block-Heading} arbeiten}

Erstellen von Zellen in Excel-Datei

//Create Cells
XSSFWorkbook wb = new XSSFWorkbook();
XSSFCreationHelper createHelper = wb.getCreationHelper();
XSSFSheet sheet = wb.createSheet("new sheet");
// Create a row and put some cells in it. Rows are 0 based.
Row row = sheet.createRow(0);
// Create a cell and put a value in it.
Cell cell = row.createCell(0);
cell.setCellValue(1);
row.createCell(1).setCellValue(1.2);
row.createCell(2).setCellValue(createHelper.createRichTextString("This is a string"));
row.createCell(3).setCellValue(true);
// Write the output to a file
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
    wb.write(fileOut);
}

Der obige Java -Code -Snippet zeigt die Verwendung der Apache -POI -API für die Arbeit mit Zellen in einer Excel -Arbeitsmappe. Der Code erstellt ein neues Excel -Arbeitsbuch (\ **xssfworkbook** \), initialisiert ein Blatt innerhalb der Arbeitsmappe und füllt dann Zellen mit verschiedenen Datenarten. Zunächst erstellt der Code ein neues Blatt mit dem Namen " neues Blatt “. Anschließend erzeugt es eine Zeile am Index 0 auf dem Blatt und fährt die Zellen innerhalb dieser Reihe aus. Der ersten Zelle (Index 0) wird mit der Methode \ **ein ganzzahliger Wert von 1 zugewiesen. Im Gegensatz dazu wird die zweite Zelle (Index 1) auf einen Dezimalwert von 1,2 direkt in die Methode \** createCell eingestellt. Die dritte Zelle (Index 2) enthält einen String -Wert “Dies ist eine Zeichenfolge”, die mit der \ **createrichtextString** \ \ -Methode aus der Instanz \ **xssfcreathelper** \ erstellt wurde. Zuletzt ist die vierte Zelle (Index 3) mit dem Booleschen Wert „True“ besiedelt. Nachdem die Zellwerte festgelegt wurden, schreibt der Code das resultierende Arbeitsbuch mit einem \ **FileOutputStream** \ in eine Excel -Datei mit dem Namen „Workbook.xlsx“.

Erstellen Datumstypzellen

XSSFWorkbook wb = new XSSFWorkbook();
//Workbook wb = new XSSFWorkbook();
CreationHelper createHelper = wb.getCreationHelper();
org.apache.poi.ss.usermodel.Sheet sheet = wb.createSheet("new sheet");
// Create a row and put some cells in it. Rows are 0 based.
Row row = sheet.createRow(0);
// Create a cell and put a date value in it.  The first cell is not styled
// as a date.
Cell cell = row.createCell(0);
cell.setCellValue(new Date());
// we style the second cell as a date (and time).  It is important to
// create a new cell style from the workbook otherwise you can end up
// modifying the built in style and effecting not only this cell but other cells.
CellStyle cellStyle = wb.createCellStyle();
cellStyle.setDataFormat(
    createHelper.createDataFormat().getFormat("m/d/yy h:mm"));
cell = row.createCell(1);
cell.setCellValue(new Date());
cell.setCellStyle(cellStyle);
//you can also set date as java.util.Calendar
cell = row.createCell(2);
cell.setCellValue(Calendar.getInstance());
cell.setCellStyle(cellStyle);
// Write the output to a file
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
    wb.write(fileOut);
}

Dieser Java-Code-Snippet zeigt die Verwendung der Apache-POI-API für die Arbeit mit Zellen vom Datumstyp in einem Excel-Arbeitsbuch. Der Code beginnt mit dem Erstellen eines neuen Excel -Arbeitsbuchs (\ **xssfWorkbook** \). Die erste Zelle (Index 0) soll einen Datumswert halten. A \ **Datum** \ Objekt, das das aktuelle Datum und die aktuelle Uhrzeit darstellt, wird als Wert der Zelle unter Verwendung der Methode \ **setCellValue festgelegt. Diese Zelle wird nicht explizit als Datum gestylt. Für die zweite Zelle (Index 1) wird ein neuer Zellstil (\ cellstyle `) mit der Methode \ createCellstyle \ erstellt. Dieser Stil wird dann so konfiguriert, dass sie ein bestimmtes Datums- und Uhrzeitformat unter Verwendung der \ setDataFormat \ -Methode haben. Das \ createdataFormat (). GetFormat („ m/d/yy h: mm “) \ Process erstellt ein benutzerdefiniertes Datumsformat mit einem Formatmuster von „m/d/yy h: mm“. Den zweiten Zelle wird der aktuelle Datum und den Uhrzeitwert zugewiesen, und der neu erstellte Zelltil wird mit der \ setCellStyle \ -Methode darauf angewendet. Die dritte Zelle (Index 2) zeigt eine alternative Methode zur Fülle von Zellen vom Datumstyp unter Verwendung von \ java.util.calendar \. Ähnlich wie bei der zweiten Zelle wird auch der benutzerdefinierte Zellstil auf diese Zelle angewendet.

Arbeit mit verschiedenen Arten von Zellen

XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet("new sheet");
Row row = sheet.createRow(2);
row.createCell(0).setCellValue(1.1);
row.createCell(1).setCellValue(new Date());
row.createCell(2).setCellValue(Calendar.getInstance());
row.createCell(3).setCellValue("a string");
row.createCell(4).setCellValue(true);
row.createCell(5).setCellType(CellType.ERROR);		// Write the output to a file
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
    wb.write(fileOut);
}

In dieser Code -Probe werden verschiedene Zellstile auf Zellen in einer Excel -Datei unter Verwendung der Apache -POI -API angewendet, wie in den folgenden Schritten erläutert.

  1. Eine Zeile wird unter dem Index 2 auf dem Blatt mit \ **createrow** (2) \ erstellt. Zellen werden dann in dieser Zeile mit den folgenden Daten besiedelt.
  2. Dem ersten Zelle (Index 0) wird ein Dezimalwert von 1.1 unter Verwendung der \ **setCellValue** \ -Methode zugewiesen.
  3. In der zweiten Zelle (Index 1) werden das aktuelle Datum und die aktuelle Uhrzeit mit einem \ -Date \ -objekt über die Methode \ `**setCellValue eingefügt.
  4. Die dritte Zelle (Index 2) enthält Datum und Uhrzeit einer \ -Kalender -Instanz, die mit der Methode \**setCellValue festgelegt wird.
  5. Die vierte Zelle (Index 3) enthält den Text “eine Zeichenfolge”.
  6. Die fünfte Zelle (Index 4) ist für einen Booleschen Wert „True“ ausgewiesen.
  7. Vorwärtsbewegung wird der sechsten Zelle (Index 5) ein spezifischer Zelltyp zugewiesen, indem die Methode \ **setCellType** \ aufgerufen wird. Diese Zelle wird als Fehlerzelle unter Verwendung der \ **cellType.Error** \ -Eumeration konfiguriert, die angibt, dass sie einen Fehlerwert anzeigt. Schließlich wird das geänderte Arbeitsbuch unter Verwendung eines \ **filoutputStream** \ in eine Datei mit dem Namen “Workbook.xlsx” geschrieben. Zusammenfassend zeigt dieses Code -Beispiel, wie ein Excel -Arbeitsbuch erstellt, verschiedene Zellstile anwendet, um verschiedene Datentypen aufzunehmen, und letztendlich die geänderte Arbeitsmappe in einer Datei speichern. Diese praktische Illustration zeigt die Funktionen der Apache POI -Bibliothek für die Arbeit mit Excel -Dateien in Java.

Einstellung von Zellen Erscheinungsbild

XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet("new sheet");
// Create a row and put some cells in it. Rows are 0 based.
Row row = sheet.createRow(1);
// Aqua background
CellStyle style = wb.createCellStyle();
style.setFillBackgroundColor(IndexedColors.AQUA.getIndex());
style.setFillPattern(FillPatternType.BIG_SPOTS);
Cell cell = row.createCell(1);
cell.setCellValue("X");
cell.setCellStyle(style);
// Orange "foreground", foreground being the fill foreground not the font color.
style = wb.createCellStyle();
style.setFillForegroundColor(IndexedColors.ORANGE.getIndex());
style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
cell = row.createCell(2);
cell.setCellValue("X");
cell.setCellStyle(style);
// Write the output to a file
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
    wb.write(fileOut);
}
wb.close();

Dieser Code -Snippet zeigt, wie das Erscheinungsbild von Zellen in einer Excel -Datei mithilfe der Apache -POI -Bibliothek in Java manipuliert wird. Dies wird aus den folgenden Schritten erreicht.

  1. Eine Zeile wird unter dem Index 1 auf dem Blatt mit \ createrow (1) \ erstellt. Die folgenden Änderungen werden an den Zellen in dieser Reihe vorgenommen.
  2. Für die erste Zelle (Index 1) wird ein benutzerdefinierter Zelltil mit \ wb.Createcellstyle () \ erstellt. Dieser Stil ist mit einer Aqua -Hintergrundfarbe mit \ setfillbackgroundColor \ und \ indexedColors.aqua.getindex () \ konfiguriert. Das Muster für den Hintergrund wird mit \ setfillpattern (fillPatternType.Big_spots) \ auf “Big Flecken” eingestellt. Eine Zelle wird in dieser Zeile bei Index 1 erstellt und mit dem Wert “x” gefüllt. Der zuvor erstellte Stil wird mit \ setcellstyle \ auf diese Zelle angewendet.
  3. Für die zweite Zelle (Index 2) wird ein neuer Zelltil erstellt. Dieser Stil ist mit einer orangefarbenen Vordergrundfarbe aus \ setfillforecroundColor \ und \ IndexedColors.orange.getindex () \. Das Füllmuster wird mit \ setfillpattern (fillPatternType.Solid_forder) \ auf “fester Vordergrund” eingestellt. Eine andere Zelle wird in Index 2 in derselben Zeile erstellt und mit dem Wert „X“ besiedelt. Der neu erzeugte Stil wird dieser Zelle mit \ setCellstyle \ zugeordnet. Nach der Konfiguration der Zellauftritte wird das geänderte Arbeitsbuch mit einem \ FileOutputStream \ in eine Datei mit dem Namen “Workbook.xlsx” geschrieben. Zusammenfassend zeigt dieses Code -Beispiel, wie die Apache -POI -Bibliothek verwendet wird, um die Zellauftritte in einer Excel -Datei zu manipulieren. Mit den nachgewiesenen Techniken werden benutzerdefinierte Zellstile erstellt, um Hintergrund- und Vordergrundfarben zu steuern sowie Muster zu füllen, wodurch die Flexibilität bei der visuellen Anpassung von Excel -Tabellen mithilfe von Java flexibel ist.

Schlussfolgerung

In allen oben genannten Java -Beispielen für die Apache POI -Bibliothek haben wir gezeigt, wie man mit Excel -Dateiinhalten aus Ihrer Java -Anwendung arbeitet. Die Code -Proben zeigten, wie Zellen in einer Excel -Datei erstellt werden, das Erscheinungsbild dieser festgelegt, den Zellstil auf verschiedene Datentypen wie String, Numeric, Decimal usw. festgelegt und wie der Zelltyp auf Datumstyp festgelegt wird. Wir werden weitere Beispiele für die Arbeit mit Excel -Dateien mit Apache POI für Java hinzufügen. Bleiben Sie also dran.

Siehe auch