Mithilfe dieser API können auch Nicht-Windows-Betriebssysteme Excel-Datentabellen über reine Java-Anwendungen verarbeiten. Da es in Java geschrieben ist, können wir die API über JSP und Servlet in der Webanwendung aufrufen, um auf die Excel-Datentabelle zuzugreifen.
Kopieren Sie den Codecode wie folgt:
Paket com.yonyou.test;
java.io.File importieren;
import java.io.IOException;
jxl.Workbook importieren;
import jxl.format.Alignment;
jxl.format.Border importieren;
import jxl.format.BorderLineStyle;
jxl.format.Color importieren;
import jxl.format.UnderlineStyle;
import jxl.write.Label;
import jxl.write.NumberFormats;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
öffentliche Klasse JxlTable {
private final static JxlTable jxlTable = new JxlTable();
öffentliche statische JxlTable getInstance() {
return jxlTable;
}
öffentliche JxlTable() {
}
public boolean createTable(String header, String[] body, String filePath) {
boolean createFlag = true;
WritableWorkbook-Buch;
versuchen {
//Excel-Datei basierend auf dem Pfad generieren
book = Workbook.createWorkbook(new File(filePath));
//Erstelle ein Blatt mit dem Namen „Tabelle“
WritableSheet sheet = book.createSheet("Table", 0);
//KEINE Spaltenbreite festlegen
sheet.setColumnView(1, 5);
//Entferne die Gitterlinien im gesamten Blatt
sheet.getSettings().setShowGridLines(false);
Label tempLabel = null;
// Header-Ausgabe
String[] headerArr = header.split(",");
int headerLen = headerArr.length;
// Schleife zum Schreiben des Header-Inhalts
for (int i = 0; i < headerLen; i++) {
tempLabel = new Label(1 + i, 1, headerArr[i],
getHeaderCellStyle());
sheet.addCell(tempLabel);
}
// Tabellenhauptausgabe
int bodyLen = body.length;
// Schleife zum Schreiben des Tabellenkörperinhalts
for (int j = 0; j < bodyLen; j++) {
String[] bodyTempArr = body[j].split(",");
for (int k = 0; k < bodyTempArr.length; k++) {
WritableCellFormat tempCellFormat = null;
tempCellFormat = getBodyCellStyle();
if (tempCellFormat != null) {
if (k == 0 || k == (bodyTempArr.length - 1)) {
tempCellFormat.setAlignment(Alignment.CENTRE);
}
}
tempLabel = new Label(1 + k, 2 + j, bodyTempArr[k],
tempCellFormat);
sheet.addCell(tempLabel);
}
}
book.write();
book.close();
} Catch (IOException e) {
createFlag = false;
System.out.println("EXCEL-Erstellung fehlgeschlagen!");
e.printStackTrace();
} Catch (RowsExceededException e) {
createFlag = false;
System.out.println("Erstellung der Excel-Einheiteneinstellung fehlgeschlagen!");
e.printStackTrace();
} Catch (WriteException e) {
createFlag = false;
System.out.println("EXCEL-Schreiben fehlgeschlagen!");
e.printStackTrace();
}
return createFlag;
}
public WritableCellFormat getHeaderCellStyle() {
WritableFont Schriftart = new WritableFont(WritableFont.createFont("宋体"), 10,
WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE);
WritableCellFormat headerFormat = new WritableCellFormat(
NumberFormats.TEXT);
versuchen {
//Schrifteinstellungen hinzufügen
headerFormat.setFont(font);
//Legen Sie die Hintergrundfarbe der Zelle fest: Die Kopfzeile ist gelb
headerFormat.setBackground(Color.YELLOW);
//Legen Sie den Rahmenstil der Kopftabelle fest
//Die gesamte Tischzeile ist dick und schwarz
headerFormat.setBorder(Border.ALL, BorderLineStyle.THICK,
Farbe: Schwarz);
//Der Inhalt der Kopfzeile wird horizontal in der Mitte angezeigt
headerFormat.setAlignment(Alignment.CENTRE);
} Catch (WriteException e) {
System.out.println("Einstellung des Header-Zellenstils fehlgeschlagen!");
}
return headerFormat;
}
public WritableCellFormat getBodyCellStyle() {
WritableFont Schriftart = new WritableFont(WritableFont.createFont("宋体"), 10,
WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE);
WritableCellFormat bodyFormat = new WritableCellFormat(font);
versuchen {
//Legen Sie die Hintergrundfarbe der Zelle fest: Der Tabellenkörper ist weiß
bodyFormat.setBackground(Color.WHITE);
//Legen Sie den Rahmenstil der Kopftabelle fest
//Die gesamte Tischreihe ist dünn und schwarz
bodyFormat
.setBorder(Border.ALL, BorderLineStyle.THIN, Color.BLACK);
} Catch (WriteException e) {
System.out.println("Einstellung des Tabellenkörperzellenstils fehlgeschlagen!");
}
return bodyFormat;
}
public static void main(String[] args) {
String header = „NEIN, Name, Geschlecht, Alter“;
String[] body = new String[4];
body[0] = „1,Ouyang Feng, männlich, 68“;
body[1] = "2,Huang Yaoshi,Male,67";
body[2] = "3,Hong Qigong,Männlich,70";
body[3] = "4,Guo Jing,Male,32";
String filePath = "e:/test.xls";
JxlTable testJxl = JxlTable.getInstance();
boolean flag = testJxl.createTable(header, body, filePath);
if (Flagge) {
System.out.println("Tabelle erfolgreich erstellt!!");
}
}
}
Schritt-für-Schritt-Erklärung:
Excel-Datei lesen
Um eine Excel-Datei zu lesen, sollten Sie zunächst ein Wordbook erstellen:
Kopieren Sie den Codecode wie folgt:
Workbook wb=Workbook.getWorkbook(File file);
Arbeitsmappe wb=Workbook.getWorkbook(InputStream is);
Dann können Sie das Arbeitsblatt erhalten :
Kopieren Sie den Codecode wie folgt:
Sheet[] sheet=wb.getSheets(); //Alle Arbeitsblätter abrufen
Sheet sheet=wb.getSheet(0); //Gibt an, dass das erste Arbeitsblatt abgerufen wird.
Schließlich können Sie die Werte bestimmter Zellen in einem Arbeitsblatt abrufen:
Kopieren Sie den Codecode wie folgt:
Cell cell=sheet.getCell(0,0); //Erhalte die Daten der ersten Spalte und der ersten Zeile. Der erste Parameter ist die Spalte
String value=cell.getContents(); //Den Wert der Zelle in Stringform abrufen
String type=cell.getType(); //Den Datentyp der Zelle abrufen.
Schließen Sie den Arbeitsmappen-Workflow :
Wenn Sie mit der Verarbeitung der Excel-Tabellendaten fertig sind, verwenden Sie unbedingt die Methode close(), um das zuvor erstellte Objekt zu schließen, um den beim Lesen der Datentabelle belegten Speicherplatz freizugeben. Dies ist besonders wichtig, wenn Sie große Datenmengen lesen . . Sehen Sie sich den folgenden Codeausschnitt an:
Kopieren Sie den Codecode wie folgt:
wb.close();
Hinweis: Sie können Excel erst schließen, nachdem der Vorgang abgeschlossen ist. Nach dem Schließen ist der Aufruf von Sheet s=wb.getSheet(0) null.
Einführung in häufig verwendete Methoden :
Von der Workbook-Klasse bereitgestellte Methoden
1. int getNumberOfSheets()
Ermitteln Sie die Anzahl der Arbeitsblätter in der Arbeitsmappe. Beispiel:
Kopieren Sie den Codecode wie folgt:
jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));
int sheet = rwb.getNumberOfSheets();
2. Sheet[] getSheets()
Gibt ein Array von Sheet-Objekten in der Arbeitsmappe zurück, Beispiel:
Kopieren Sie den Codecode wie folgt:
jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));
Sheet[] sheet = rwb.getSheets();
Von der Sheet-Schnittstelle bereitgestellte Methoden
1. String getName()
Rufen Sie den Namen des Blatts ab, Beispiel:
Kopieren Sie den Codecode wie folgt:
jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));
jxl.Sheet rs = rwb.getSheet(0);
String sheetName = rs.getName();
2. int getColumns()
Rufen Sie die Gesamtzahl der in der Tabellentabelle enthaltenen Spalten ab, Beispiel:
Kopieren Sie den Codecode wie folgt:
jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));
jxl.Sheet rs = rwb.getSheet(0);
int rsColumns = rs.getColumns();
3. Cell[] getColumn(int-Spalte)
Rufen Sie alle Zellen in einer bestimmten Spalte ab und geben Sie ein Array von Zellobjekten zurück. Beispiel:
Kopieren Sie den Codecode wie folgt:
jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));
jxl.Sheet rs = rwb.getSheet(0);
Cell[] cell = rs.getColumn(0);
4. int getRows()
Rufen Sie die Gesamtzahl der in der Tabellentabelle enthaltenen Zeilen ab, Beispiel:
Kopieren Sie den Codecode wie folgt:
jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));
jxl.Sheet rs = rwb.getSheet(0);
int rsRows = rs.getRows();
5. Cell[] getRow(int row)