1. Kadang -kadang saat mengekspor Excel, Anda perlu mengekspor berdasarkan kategori. Ada beberapa subkategori dalam satu kategori utama, dan ada beberapa subkategori di bawah subkategori, seperti gambar berikut:
Tidak sulit untuk mencapai ini.
Idenya adalah sebagai berikut: beredar sesuai dengan kategori utama. Sebagai contoh, hal di atas adalah untuk bersepeda menurut tiga kategori utama kampus Zhangjiang, kampus Xuhui, dan kampus Lingang, dan kemudian memproses kategori minor. Karena contoh ini tidak melibatkan penggabungan, itu hanya melibatkan pemrosesan kategori kecil. Jika Anda perlu memproses kategori kecil, Anda masih perlu menghadapinya. Prinsip implementasi spesifik sama dengan kategori minor;
Setiap siklus, catat jenis rumah dari siklus ini dan jenis rumah dari siklus terakhir. Ketika keduanya sama, baris akhir yang akan digabungkan ++. Kalau tidak, itu berarti bahwa jenis rumah telah selesai (asalkan setiap jenis dipesan secara berurutan, memastikan bahwa jenis yang sama berdekatan) dan mulai bergabung. Implementasi spesifik adalah sebagai berikut:
2. Menerapkan kode, ide spesifik sudah ada di komentar
public void expStatistics (String FilePath, String CampusCode) {coba {writableworkbook wwb = workbook.createworkBook (file baru (filepath)); Jxlformatutil jfu = jxlformatutil () baru; WritableSheet ws = wwb.createSheet ("statistik laporan rumah", 0); String [] TableHead = {"Nama Kampus: 20", "Jenis Rumah: 30", "Penggunaan Rumah: 30", "Area Pengguna (): 20"}; untuk (int i = 0; i <tabelhead.length; i ++) {// Gaya judul dari setiap kolom ws.addcell (label baru (i, 0, TableHead [i] .split (":") [0], jxlformatutil.wchead)); ws.setColumnview (i, integer.valueof (TableHead [i] .split (":") [1])); } int col = 1; // Mulai dari baris 1 // variabel berikut digunakan untuk menggabungkan konten yang sama int percol = col; String Perpurpose = ""; // Penggunaan Tipe String Purpey = ""; // Penggunaan saat ini int startmergecol = 1; // Baris pertama yang akan digabungkan int endmergecol = 0; // Baris terakhir yang akan disatu dengan boolean = true; // digunakan untuk mencatat apakah itu loop pertama // Daftar Fcxx <fcxx <fcxx; if (null! = CampusCode &&! " } else {CampusList = Campusdao.findcampus (); } for (fcxtcampus campus: campuslist) {list <fcxtBuild> builds = builddao.statisticsbuilds (campus.getCampusCode ()); // Dapatkan semua informasi rumah jika (null! = Builds && build. ws.addcell (label baru (baris ++, col, campus.getcampusname (), jxlformatutil.wccenter)); tujuan = build.getUfUfulpurpose (); if (flag) {// Jika itu adalah loop pertama, inisialisasi kelayakan sehingga penilaian pertama berikutnya yang dilestarikan = tujuan; bendera = false; } ws.addcell (label baru (baris ++, col, fcxtbuild.build_usefulpurpose.get (build.getusefulpurpose ()), jxlformatutil.wccenter)); if (purpsen.equals (kelentik)) {endmergecol ++; } else {// Ketika keduanya berbeda, baris yang sama sebelum fusi W.Mergecells (1, startmergecol, 1, endmergecol); startmergecol = col; endmergecol = startmergecol; Perpurpose = tujuan; } w.addcell (label baru (baris ++, col, fcxtbuild.build_buildingtype.get (build.getBuildingType ()), jxlformatutil.wccenter)); ws.addcell (label baru (baris ++, col, build.getBuildarea (). tostring (), jxlformatutil.wccenter)); col ++; } ws.mergecells (0, Percol, 0, col-1); Percol = col; }} wwb.write (); wwb.close (); } catch (Exception e) {E.PrintStackTrace (); }}Meringkaskan
Di atas adalah penjelasan terperinci tentang ide -ide baris untuk menggabungkan konten yang sama di kolom yang sama ketika mengekspor Java Excel. Saya harap ini akan membantu semua orang. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas semua orang tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!