Ich wollte schon lange die Methode zur Verwendung von Java zur Bedienung von Excel studieren, da ich heute nichts zu tun habe, also habe ich nur ein wenig gelernt und es zusammengefasst. Um Java zum Betrieb von Excel zu verwenden, gibt es ein Open-Source-Tool – jxl.jar, das von http://sourceforge.net/projects/jexcelapi/files/ heruntergeladen werden kann.
1. Lesen Sie den Inhalt der Excel-Datei
Kopieren Sie den Codecode wie folgt:
/** *//**Lesen Sie den Inhalt der Excel-Datei
* @param-Datei Datei, die gelesen werden soll
* @zurückkehren
*/
öffentlicher statischer String readExcel(File file)...{
StringBuffer sb = new StringBuffer();
Arbeitsmappe wb = null;
versuchen...{
//Arbeitsmappenobjekt erstellen
wb=Workbook.getWorkbook(file);
} Catch (BiffException e) ...{
e.printStackTrace();
} Catch (IOException e) ...{
e.printStackTrace();
}
if(wb==null)
null zurückgeben;
// Nachdem Sie das Workbook-Objekt erhalten haben, können Sie das Sheet-Objekt (Arbeitsblatt) darüber abrufen
Sheet[] sheet = wb.getSheets();
if(sheet!=null&&sheet.length>0)...{
//Durchlaufe jedes Arbeitsblatt
for(int i=0;i<sheet.length;i++)...{
//Ermitteln Sie die Anzahl der Zeilen im aktuellen Arbeitsblatt
int rowNum = sheet[i].getRows();
for(int j=0;j<rowNum;j++)...{
//Alle Zellen in der aktuellen Zeile abrufen
Cell[] Zellen = Blatt[i].getRow(j);
if(cells!=null&&cells.length>0)...{
//Durchlaufe jede Zelle
for(int k=0;k<cells.length;k++)...{
//Lesen Sie den Wert der aktuellen Zelle
String cellValue = cell[k].getContents();
sb.append(cellValue+" ");
}
}
sb.append(" ");
}
sb.append(" ");
}
}
//Schließen Sie schließlich die Ressource und geben Sie den Speicher frei
wb.close();
return sb.toString();
}
2. In eine Excel-Datei schreiben
Hier gibt es viele Formate, z. B. Fettdruck von Textinhalten, Hinzufügen bestimmter Farben usw. Sie können sich auf die API von jxl beziehen
Kopieren Sie den Codecode wie folgt:
/**Generieren Sie eine Excel-Datei
* @param fileName Der Name der zu generierenden Excel-Datei
*/
public static void writeExcel(String fileName)...{
WritableWorkbook wwb = null;
versuchen...{
// Verwenden Sie zunächst die Factory-Methode der Workbook-Klasse, um ein beschreibbares Arbeitsmappenobjekt (Workbook) zu erstellen
wwb = Workbook.createWorkbook(new File(fileName));
} Catch (IOException e) ...{
e.printStackTrace();
}
if(wwb!=null)...{
//Erstelle ein beschreibbares Arbeitsblatt
// Die createSheet-Methode von Workbook hat zwei Parameter. Der erste ist der Name des Arbeitsblatts und der zweite ist die Position des Arbeitsblatts in der Arbeitsmappe.
WritableSheet ws = wwb.createSheet("sheet1", 0);
//Beginne unten mit dem Hinzufügen von Zellen
for(int i=0;i<10;i++)...{
for(int j=0;j<5;j++)...{
//Hier muss beachtet werden, dass in Excel der erste Parameter die Spalte und der zweite Parameter die Zeile darstellt.
Label labelC = new Label(j, i, „Dies ist die Zeile „+(i+1)+“, die Spalte „+(j+1)+““);
versuchen...{
//Fügen Sie die generierten Zellen zum Arbeitsblatt hinzu
ws.addCell(labelC);
} Catch (RowsExceededException e) ...{
e.printStackTrace();
} Catch (WriteException e) ...{
e.printStackTrace();
}
}
}
versuchen...{
//Von Speicher in Datei schreiben
wwb.write();
//Ressourcen schließen und Speicher freigeben
wwb.close();
} Catch (IOException e) ...{
e.printStackTrace();
} Catch (WriteException e) ...{
e.printStackTrace();
}
}
}
Hinweis: Wenn Sie Inhalte in ein bestehendes Excel schreiben möchten, müssen Sie wie folgt vorgehen:
Kopieren Sie den Codecode wie folgt:
WritableWorkbook book = null;
versuchen...{
// Excel ruft die Datei ab
Workbook wb = Workbook.getWorkbook(new File("D:/test.xls"));
// Eine Kopie einer Datei öffnen und die angegebenen Daten zurück in die Originaldatei schreiben
book = Workbook.createWorkbook(new File("D:/test.xls"), wb);
//Ein Arbeitsblatt hinzufügen
WritableSheet sheet = book.getSheet("sheet1");
sheet.addCell(new Label(8,3, „Etwas wurde in Zeile 3, Spalte 8“ hinzugefügt));
//TODO Die folgenden Teile werden weggelassen
}catch(Ausnahme e)...{
e.printStackTrace();
}
3. Finden Sie heraus, ob eine Excel-Datei ein bestimmtes Schlüsselwort enthält
Kopieren Sie den Codecode wie folgt:
/** Suchen Sie, ob eine bestimmte Datei ein bestimmtes Schlüsselwort enthält
* @param-Datei Datei, die durchsucht werden soll
* @param keyWord Das Schlüsselwort, nach dem gesucht werden soll
* @zurückkehren
*/
öffentliche statische boolesche SucheKeyWord(Dateidatei,String-Schlüsselwort)...{
boolean res = false;
Arbeitsmappe wb = null;
versuchen...{
//Arbeitsmappenobjekt erstellen
wb=Workbook.getWorkbook(file);
} Catch (BiffException e) ...{
Rückkehr res;
} Catch (IOException e) ...{
Rückkehr res;
}
if(wb==null)
Rückkehr res;
// Nachdem Sie das Workbook-Objekt erhalten haben, können Sie das Sheet-Objekt (Arbeitsblatt) darüber abrufen
Sheet[] sheet = wb.getSheets();
boolean breakSheet = false;
if(sheet!=null&&sheet.length>0)...{
//Durchlaufe jedes Arbeitsblatt
for(int i=0;i<sheet.length;i++)...{
if(breakSheet)
brechen;
//Ermitteln Sie die Anzahl der Zeilen im aktuellen Arbeitsblatt
int rowNum = sheet[i].getRows();
boolean breakRow = false;
for(int j=0;j<rowNum;j++)...{
if(breakRow)
brechen;
//Alle Zellen in der aktuellen Zeile abrufen
Cell[] Zellen = Blatt[i].getRow(j);
if(cells!=null&&cells.length>0)...{
boolean breakCell = false;
//Durchlaufe jede Zelle
for(int k=0;k<cells.length;k++)...{
if(breakCell)
brechen;
//Lesen Sie den Wert der aktuellen Zelle
String cellValue = cell[k].getContents();
if(cellValue==null)
weitermachen;
if(cellValue.contains(keyWord))...{
res = wahr;
breakCell = true;
breakRow = true;
breakSheet = true;
}
}
}
}
}
}
//Schließen Sie schließlich die Ressource und geben Sie den Speicher frei
wb.close();
Rückkehr res;
}
4. Bildsymbol in Excel einfügen
Das Einfügen von Bildern ist einfach, siehe folgenden Code:
Kopieren Sie den Codecode wie folgt:
/** *//**Bilder in Excel einfügen
* @param dataSheet Das einzufügende Arbeitsblatt
* @param col Das Bild beginnt in dieser Spalte
* @param row Das Bild beginnt in dieser Zeile
* @param width Die Anzahl der vom Bild belegten Spalten
* @param height Die Anzahl der vom Bild belegten Zeilen
* @param imgFile Die einzufügende Bilddatei
*/
public static void insertImg(WritableSheet dataSheet, int col, int row, int width,
int height, Datei imgFile)...{
WritableImage img = new WritableImage(col, row, width, height, imgFile);
dataSheet.addImage(img);
}
Die Kommentare zum obigen Code sind bereits sehr klar und müssen wahrscheinlich nicht mehr erklärt werden. Wir können sie mit dem folgenden Programm überprüfen:
Kopieren Sie den Codecode wie folgt:
versuchen...{
//Eine Arbeitsmappe erstellen
WritableWorkbook workbook = Workbook.createWorkbook(new File("D:/test1.xls"));
//Einzufügendes Arbeitsblatt
WritableSheet imgSheet = workbook.createSheet("Images",0);
//Einzufügende Bilddatei
Datei imgFile = new File("D:/1.png");
//Das Bild wird in die erste Zelle der zweiten Zeile eingefügt und nimmt jeweils sechs Zellen in Länge und Breite ein.
insertImg(imgSheet,0,1,6,6,imgFile);
workbook.write();
workbook.close();
} Catch (IOException e) ...{
e.printStackTrace();
} Catch (WriteException e) ...{
e.printStackTrace();
}
JXL unterstützt jedoch nur Bilder im PNG-Format und weder das JPG- noch das GIF-Format werden unterstützt.
5. Kopf- und Fußzeile einfügen
Im Allgemeinen sind Kopf- und Fußzeilen in drei Teile unterteilt: links, Mitte und rechts. Sie können den folgenden Code verwenden, um Kopf- und Fußzeilen einzufügen.
Kopieren Sie den Codecode wie folgt:
/** *//**Kopf- und Fußzeile zu Excel hinzufügen
* @param dataSheet Das Arbeitsblatt, das der Kopfzeile hinzugefügt werden soll
* @param ist gegangen
* @param center
* @param richtig
*/
public static void setHeader(WritableSheet dataSheet,String left,String center,String right)...{
HeaderFooter hf = new HeaderFooter();
hf.getLeft().append(left);
hf.getCentre().append(center);
hf.getRight().append(right);
//Header hinzufügen
dataSheet.getSettings().setHeader(hf);
//Fußzeile hinzufügen
//dataSheet.getSettings().setFooter(hf);
}
Wir können diese Methode mit dem folgenden Code testen:
Kopieren Sie den Codecode wie folgt:
versuchen...{
//Eine Arbeitsmappe erstellen
WritableWorkbook workbook = Workbook.createWorkbook(new File("D:/test1.xls"));
//Einzufügendes Arbeitsblatt
WritableSheet dataSheet = workbook.createSheet("Header hinzufügen",0);
ExcelUtils.setHeader(dataSheet, „chb“, „2007-03-06“, „Seite 1 von 3“);
workbook.write();
workbook.close();
} Catch (IOException e) ...{
e.printStackTrace();
} Catch (WriteException e) ...{
e.printStackTrace();
}