Dengan menggunakan API ini, sistem operasi non-Windows juga dapat memproses tabel data Excel melalui aplikasi Java murni. Karena ditulis dalam Java, kita dapat memanggil API melalui JSP dan Servlet di aplikasi web untuk mengakses tabel data Excel.
Copy kode kodenya sebagai berikut:
paket com.yonyou.test;
impor java.io.File;
impor java.io.IOException;
impor jxl.Buku Kerja;
import jxl.format.Penjajaran;
import jxl.format.Border;
impor jxl.format.BorderLineStyle;
import jxl.format.Warna;
impor jxl.format.UnderlineStyle;
import jxl.write.Label;
impor jxl.write.NumberFormats;
impor jxl.write.WritableCellFormat;
impor jxl.write.WritableFont;
impor jxl.write.WritableSheet;
impor jxl.write.WritableWorkbook;
impor jxl.write.WriteException;
impor jxl.write.biff.RowsExceededException;
kelas publik JxlTable {
private final static JxlTable jxlTable = new JxlTable();
publik statis JxlTable getInstance() {
kembalikan jxlTable;
}
publik JxlTable() {
}
public boolean createTable(String header, String[] body, String filePath) {
boolean createFlag = benar;
Buku Buku Kerja yang Dapat Ditulis;
mencoba {
//Hasilkan file excel berdasarkan jalur
buku = Buku Kerja.createWorkbook(File baru(filePath));
//Buat sheet bernama "Tabel"
Lembar WritableSheet = book.createSheet("Tabel", 0);
//Setel lebar kolom NO
lembar.setColumnView(1, 5);
//Hapus garis kisi di seluruh lembar
lembar.getSettings().setShowGridLines(false);
Label tempLabel = null;
// Keluaran tajuk
String[] headerArr = header.split(",");
int headerLen = headerArr.panjang;
// Ulangi untuk menulis konten header
untuk (int i = 0; i < headerLen; i++) {
tempLabel = Label baru(1 + i, 1, headerArr[i],
getHeaderCellStyle());
sheet.addCell(tempLabel);
}
// keluaran isi tabel
int bodyLen = badan.panjang;
// Perulangan untuk menulis isi isi tabel
untuk (int j = 0; j < bodyLen; j++) {
String[] bodyTempArr = tubuh[j].split(",");
for (int k = 0; k < bodyTempArr.length; k++) {
Format Sel yang Dapat Ditulis tempCellFormat = null;
tempCellFormat = getBodyCellStyle();
jika (tempCellFormat != null) {
if (k == 0 || k == (bodyTempArr.length - 1)) {
tempCellFormat.setAlignment(Alignment.CENTRE);
}
}
tempLabel = Label baru(1 + k, 2 + j, bodyTempArr[k],
tempCellFormat);
sheet.addCell(tempLabel);
}
}
buku.tulis();
buku.close();
} tangkapan (IOException e) {
buatBendera = salah;
System.out.println("Pembuatan EXCEL gagal!");
e.printStackTrace();
} tangkapan (RowsExceededException e) {
buatBendera = salah;
System.out.println("Pembuatan pengaturan unit EXCEL gagal!");
e.printStackTrace();
} tangkapan (WriteException e) {
buatBendera = salah;
System.out.println("Penulisan EXCEL gagal!");
e.printStackTrace();
}
kembalikan createFlag;
}
publik WritableCellFormat getHeaderCellStyle() {
Font WritableFont = new WritableFont(WritableFont.createFont("宋体"), 10,
WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE);
WritableCellFormat headerFormat = baru WritableCellFormat(
NumberFormats.TEXT);
mencoba {
//Tambahkan pengaturan font
headerFormat.setFont(font);
//Mengatur warna latar belakang sel: header berwarna kuning
headerFormat.setBackground(Warna.KUNING);
//Mengatur gaya batas tabel header
//Seluruh garis tabel tebal dan hitam
headerFormat.setBorder(Border.ALL, BorderLineStyle.THICK,
Warna.HITAM);
//Konten header ditampilkan secara horizontal di tengah
headerFormat.setAlignment(Alignment.CENTRE);
} tangkapan (WriteException e) {
System.out.println("Pengaturan gaya sel header gagal!");
}
kembalikan headerFormat;
}
publik WritableCellFormat getBodyCellStyle() {
Font WritableFont = new WritableFont(WritableFont.createFont("宋体"), 10,
WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE);
WritableCellFormat bodyFormat = baru WritableCellFormat(font);
mencoba {
//Mengatur warna latar belakang sel: badan tabel berwarna putih
bodyFormat.setBackground(Warna.PUTIH);
//Mengatur gaya batas tabel header
//Seluruh garis tabel tipis dan hitam
format tubuh
.setBorder(Border.ALL, BorderLineStyle.THIN, Color.BLACK);
} tangkapan (WriteException e) {
System.out.println("Pengaturan gaya sel isi tabel gagal!");
}
kembalikan format tubuh;
}
public static void main(String[] args) {
String header = "TIDAK, nama, jenis kelamin, umur";
String[] badan = String baru[4];
body[0] = "1,Ouyang Feng, pria, 68";
body[1] = "2,Huang Yaoshi,Pria,67";
body[2] = "3,Hong Qigong,Pria,70";
body[3] = "4,Guo Jing,Pria,32";
String filePath = "e:/test.xls";
JxlTable testJxl = JxlTable.getInstance();
boolean flag = testJxl.createTable(header, body, filePath);
jika (bendera) {
System.out.println("Tabel berhasil dibuat!!");
}
}
}
Penjelasan langkah demi langkah:
Baca file excelnya
Untuk membaca file excel, Anda harus membuat buku kata terlebih dahulu:
Copy kode kodenya sebagai berikut:
Buku Kerja wb=Buku Kerja.getWorkbook(Berkas berkas);
Buku Kerja wb=Buku Kerja.getWorkbook(InputStream adalah);
Kemudian Anda bisa mendapatkan lembar kerjanya :
Copy kode kodenya sebagai berikut:
Sheet[] sheet=wb.getSheets(); //Dapatkan semua lembar kerja
Sheet sheet=wb.getSheet(0); //Menunjukkan mendapatkan lembar kerja pertama.
Terakhir, Anda bisa mendapatkan nilai sel tertentu di lembar kerja:
Copy kode kodenya sebagai berikut:
Cell cell=sheet.getCell(0,0); //Mendapatkan data kolom pertama dan baris pertama. Parameter pertama adalah kolom
String value=cell.getContents(); //Dapatkan nilai sel dalam bentuk string
String type=cell.getType(); //Mendapatkan tipe data sel.
Tutup alur kerja buku kerja :
Ketika Anda selesai memproses data spreadsheet Excel, pastikan untuk menggunakan metode close() untuk menutup objek yang dibuat sebelumnya untuk melepaskan ruang memori yang ditempati dalam proses membaca tabel data. Ini sangat penting ketika membaca data dalam jumlah besar . Lihat cuplikan kode berikut:
Copy kode kodenya sebagai berikut:
wb.close();
Catatan: Anda hanya dapat menutup excel setelah menyelesaikan operasi. Setelah ditutup, pemanggilan Sheet s=wb.getSheet(0) akan menjadi null.
Pengantar metode yang umum digunakan :
Metode yang disediakan oleh kelas Workbook
1. ke dalam getNumberOfSheets()
Mendapatkan jumlah lembar kerja pada workbook, contoh:
Copy kode kodenya sebagai berikut:
jxl.Workbook rwb = jxl.Workbook.getWorkbook(File baru(file sumber));
int lembar = rwb.getNumberOfSheets();
2. Lembar[] getSheet()
Mengembalikan array objek Sheet di Buku Kerja, contoh:
Copy kode kodenya sebagai berikut:
jxl.Workbook rwb = jxl.Workbook.getWorkbook(File baru(file sumber));
Lembar[] lembar = rwb.getSheets();
Metode yang disediakan oleh antarmuka Sheet
1. String dapatkanNama()
Dapatkan nama Sheetnya, contoh:
Copy kode kodenya sebagai berikut:
jxl.Workbook rwb = jxl.Workbook.getWorkbook(File baru(file sumber));
jxl.Sheet rs = rwb.getSheet(0);
String sheetName = rs.getName();
2. ke dalam getColumns()
Dapatkan jumlah total kolom yang terdapat pada tabel Sheet, contoh:
Copy kode kodenya sebagai berikut:
jxl.Workbook rwb = jxl.Workbook.getWorkbook(File baru(file sumber));
jxl.Sheet rs = rwb.getSheet(0);
int rsColumns = rs.getColumns();
3. Sel[] getColumn(int kolom)
Dapatkan semua sel di kolom tertentu dan kembalikan array objek sel.
Copy kode kodenya sebagai berikut:
jxl.Workbook rwb = jxl.Workbook.getWorkbook(File baru(file sumber));
jxl.Sheet rs = rwb.getSheet(0);
Sel[] sel = rs.getColumn(0);
4. ke dalam getRows()
Dapatkan jumlah total baris yang terdapat pada tabel Sheet, contoh:
Copy kode kodenya sebagai berikut:
jxl.Workbook rwb = jxl.Workbook.getWorkbook(File baru(file sumber));
jxl.Sheet rs = rwb.getSheet(0);
int rsRows = rs.getRows();
5. Sel[] getRow(int baris)