Saya sudah lama ingin mempelajari metode penggunaan Java untuk mengoperasikan Excel. Saya tidak ada pekerjaan hari ini, jadi saya hanya mempelajarinya sedikit dan merangkumnya. Untuk menggunakan java untuk mengoperasikan Excel, terdapat alat sumber terbuka - jxl.jar, yang dapat diunduh dari http://sourceforge.net/projects/jexcelapi/files/.
1. Baca isi file Excel
Copy kode kodenya sebagai berikut:
/** *//**Membaca isi file Excel
* @param file file yang akan dibaca
* @kembali
*/
String statis publik readExcel(File file)...{
StringBuffer sb = StringBuffer baru();
Buku Kerja wb = null;
mencoba...{
//Membangun objek Buku Kerja
wb=Buku Kerja.getBuku Kerja(file);
} menangkap (BiffException e) ...{
e.printStackTrace();
} tangkapan (IOException e) ...{
e.printStackTrace();
}
jika(wb==batal)
kembalikan nol;
//Setelah mendapatkan objek Buku Kerja, Anda bisa mendapatkan objek Lembar (lembar kerja) melaluinya
Lembar[] lembar = wb.getSheets();
if(sheet!=null&&sheet.length>0)...{
//Ulangi setiap lembar kerja
for(int i=0;i<sheet.panjang;i++)...{
//Dapatkan jumlah baris pada lembar kerja saat ini
int rowNum = lembar[i].getRows();
untuk(int j=0;j<rowNum;j++)...{
//Dapatkan semua sel di baris saat ini
Sel[] sel = lembar[i].getRow(j);
if(sel!=null&&sel.panjang>0)...{
//Ulangi setiap sel
for(int k=0;k<sel.panjang;k++)...{
//Baca nilai sel saat ini
String cellValue = sel[k].getContents();
sb.append(cellValue+" ");
}
}
sb.tambahkan(" ");
}
sb.tambahkan(" ");
}
}
//Akhirnya tutup sumber daya dan lepaskan memori
wb.close();
kembali sb.toString();
}
2. Menulis ke file Excel
Ada banyak format di sini, seperti konten teks tebal, penambahan warna tertentu, dll. Anda bisa merujuk ke API jxl
Copy kode kodenya sebagai berikut:
/**Buat file Excel
* @param fileName Nama file Excel yang akan dibuat
*/
public static void writeExcel(String nama file)...{
Buku Kerja yang Dapat Ditulis wwb = null;
mencoba...{
//Pertama-tama gunakan metode pabrik dari kelas Buku Kerja untuk membuat objek buku kerja (Buku Kerja) yang dapat ditulis
wwb = Buku Kerja.createWorkbook(File baru(Namafile));
} tangkapan (IOException e) ...{
e.printStackTrace();
}
jika(wwb!=batal)...{
//Membuat lembar kerja yang dapat ditulis
//Metode createSheet pada Buku Kerja memiliki dua parameter. Yang pertama adalah nama lembar kerja, dan yang kedua adalah posisi lembar kerja dalam buku kerja.
WritableSheet ws = wwb.createSheet("sheet1", 0);
//Mulai menambahkan sel di bawah
untuk(int i=0;i<10;i++)...{
untuk(int j=0;j<5;j++)...{
//Yang perlu diperhatikan di sini adalah di Excel, parameter pertama mewakili kolom dan parameter kedua mewakili baris.
Label labelC = new Label(j, i, "Ini adalah baris "+(i+1)+", kolom "+(j+1)+"");
mencoba...{
//Tambahkan sel yang dihasilkan ke lembar kerja
ws.addCell(labelC);
} tangkapan (RowsExceededException e) ...{
e.printStackTrace();
} tangkapan (WriteException e) ...{
e.printStackTrace();
}
}
}
mencoba...{
//Menulis dari memori ke file
wwb.tulis();
//Tutup sumber daya dan lepaskan memori
wwb.tutup();
} tangkapan (IOException e) ...{
e.printStackTrace();
} tangkapan (WriteException e) ...{
e.printStackTrace();
}
}
}
Catatan: Jika Anda ingin menulis konten ke Excel yang sudah ada, Anda perlu melakukan hal berikut:
Copy kode kodenya sebagai berikut:
Buku Buku Kerja yang Dapat Ditulis = null;
mencoba...{
// Excel mengambil filenya
Buku Kerja wb = Buku Kerja.getWorkbook(File baru("D:/test.xls"));
// Buka salinan file dan tulis kembali data yang ditentukan ke file aslinya
buku = Buku Kerja.createWorkbook(File baru("D:/test.xls"), wb);
//Tambahkan lembar kerja
Lembar WritableSheet = buku.getSheet("sheet1");
sheet.addCell(Label baru(8,3, "Ada yang ditambahkan di baris 3, kolom 8"));
//TODO Bagian berikut dihilangkan
}menangkap(Pengecualian e)...{
e.printStackTrace();
}
3. Temukan apakah file Excel mengandung kata kunci tertentu
Copy kode kodenya sebagai berikut:
/** Mencari apakah file tertentu mengandung kata kunci tertentu
* @param file file yang akan dicari
* @param keyWord Kata kunci yang akan dicari
* @kembali
*/
pencarian boolean statis publikKeyWord(File file,String keyWord)...{
boolean res = salah;
Buku Kerja wb = null;
mencoba...{
//Membangun objek Buku Kerja
wb=Buku Kerja.getBuku Kerja(file);
} menangkap (BiffException e) ...{
kembalikan res;
} tangkapan (IOException e) ...{
kembalikan res;
}
jika(wb==batal)
kembalikan res;
//Setelah mendapatkan objek Buku Kerja, Anda bisa mendapatkan objek Lembar (lembar kerja) melaluinya
Lembar[] lembar = wb.getSheets();
boolean breakSheet = salah;
if(sheet!=null&&sheet.length>0)...{
//Ulangi setiap lembar kerja
for(int i=0;i<sheet.panjang;i++)...{
jika (lembar rusak)
merusak;
//Dapatkan jumlah baris pada lembar kerja saat ini
int rowNum = lembar[i].getRows();
boolean breakRow = salah;
untuk(int j=0;j<jumlah baris;j++)...{
jika (breakRow)
merusak;
//Dapatkan semua sel di baris saat ini
Sel[] sel = lembar[i].getRow(j);
if(sel!=null&&sel.panjang>0)...{
boolean breakCell = salah;
//Ulangi setiap sel
for(int k=0;k<sel.panjang;k++)...{
jika (breakCell)
merusak;
//Baca nilai sel saat ini
String cellValue = sel[k].getContents();
jika(Nilaisel==null)
melanjutkan;
if(cellValue.contains(keyWord))...{
res = benar;
breakCell = benar;
breakRow = benar;
breakSheet = benar;
}
}
}
}
}
}
//Akhirnya tutup sumber daya dan lepaskan memori
wb.close();
kembalikan res;
}
4. Masukkan ikon gambar ke dalam Excel
Memasukkan gambarnya mudah, lihat kode berikut:
Copy kode kodenya sebagai berikut:
/** *//**Memasukkan gambar ke dalam Excel
* @param dataSheet Lembar kerja yang akan disisipkan
* @param col Gambar dimulai dari kolom ini
* @param row Gambar dimulai dari baris ini
* @param width Jumlah kolom yang ditempati oleh gambar
* @param height Jumlah baris yang ditempati oleh gambar
* @param imgFile File gambar yang akan disisipkan
*/
public static void insertImg(WritableSheet dataSheet, int col, int baris, int lebar,
int tinggi, File imgFile)...{
WritableImage img = new WritableImage(kolom, baris, lebar, tinggi, imgFile);
lembar data.addImage(img);
}
Komentar pada kode di atas sudah sangat jelas, dan mungkin tidak perlu dijelaskan lagi. Kita bisa memverifikasinya dengan program berikut:
Copy kode kodenya sebagai berikut:
mencoba...{
//Buat buku kerja
Buku kerja WritableWorkbook = Buku Kerja.createWorkbook(File baru("D:/test1.xls"));
//Lembar kerja yang akan disisipkan
WritableSheet imgSheet = buku kerja.createSheet("Gambar",0);
//File gambar yang akan dimasukkan
File imgFile = File baru("D:/1.png");
//Gambar disisipkan ke dalam sel pertama pada baris kedua, menempati enam sel masing-masing panjang dan lebarnya.
insertImg(imgSheet,0,1,6,6,imgFile);
buku kerja.write();
buku kerja.close();
} tangkapan (IOException e) ...{
e.printStackTrace();
} tangkapan (WriteException e) ...{
e.printStackTrace();
}
Namun jxl hanya mendukung gambar dalam format png, dan format jpg maupun gif tidak didukung.
5. Sisipkan header dan footer
Secara umum header dan footer dibagi menjadi tiga bagian, kiri, tengah dan kanan. Anda dapat menggunakan kode berikut untuk menyisipkan header dan footer.
Copy kode kodenya sebagai berikut:
/** *//**Tambahkan header dan footer ke Excel
* @param dataSheet Lembar kerja yang akan ditambahkan ke header
* @param kiri
* @param pusat
* @param benar
*/
public static void setHeader(WritableSheet dataSheet,String kiri,String tengah,String kanan)...{
HeaderFooter hf = HeaderFooter baru();
hf.getLeft().append(kiri);
hf.getCentre().append(center);
hf.getRight().append(kanan);
//Tambahkan tajuk
dataSheet.getSettings().setHeader(hf);
//Tambahkan catatan kaki
//dataSheet.getSettings().setFooter(hf);
}
Kita dapat menguji metode ini dengan kode berikut:
Copy kode kodenya sebagai berikut:
mencoba...{
//Buat buku kerja
Buku kerja WritableWorkbook = Buku Kerja.createWorkbook(File baru("D:/test1.xls"));
//Lembar kerja yang akan disisipkan
WritableSheet dataSheet = workbook.createSheet("Tambahkan header",0);
ExcelUtils.setHeader(dataSheet, "chb", "2007-03-06", "Halaman 1 dari 3");
buku kerja.write();
buku kerja.close();
} tangkapan (IOException e) ...{
e.printStackTrace();
} tangkapan (WriteException e) ...{
e.printStackTrace();
}