Apache POI Excel: Pengaturan halaman Sejajarkan dengan margin halaman

Saya memiliki Apache POI API untuk manipulasi file Excel. File Excel dihasilkan dari Laporan Jasper. Excel yang dihasilkan dari Jasper Report baik-baik saja. Yang saya inginkan adalah beberapa hal tambahan yang tidak didukung oleh Jasper Report. Seperti menambahkan pengaturan halaman cetak - Masalah Header dan Footer. Saya telah mengabaikan margin batas pada setiap halaman Excel. Namun saat saya menambahkan header dan footer, keduanya dicetak dengan margin tertentu. Kemudian diamati adanya checkbox pada halaman Page Setup pada MS Excel.

masukkan deskripsi gambar di sini

Di sini kotak centang Align with page margins mengontrol margin pada Header dan Footer. Jika kotak centang ini dicentang maka marginnya akan sama dengan halaman excel.

Pertanyaan: Bagaimana cara mengontrol bidang kotak centang ini dari Apache POI?


person Parth Bhagat    schedule 15.03.2017    source sumber


Jawaban (1)


Fitur ini belum muncul. Namun, dalam format file XSSF, Anda bisa mendapatkannya menggunakan Kelas CT. Saya akan mulai di sini:

Sheet sh = wb.createSheet();
HeaderFooter header = sh.getHeader();
XSSFHeaderFooter xhd = (XSSFHeaderFooter) header;
CTHeaderFooter ctHd = xhd.getHeaderFooter();
ctHd.setAlignWithMargins(true);

Ini hanya berfungsi dengan file XLSX, saya tidak tahu bagaimana melakukannya dengan file XLS. Catatan Saya memulai dengan Buku Kerja, Lembar, dan Header generik. Tapi kemudian melemparkannya ke Header XSSF untuk mendapatkan kelas CT yang mendasarinya. Anda dapat menulis seluruh aplikasi dengan kelas XSSF, dan Anda tidak perlu XSSFHeaderFooter xhd = (XSSFHeaderFooter) header;.

person jmarkmurphy    schedule 15.03.2017
comment
Tolong sarankan peningkatan fitur/buka permintaan tarik dengan pembungkus header/footer XSSF yang bagus untuk ini! :) - person Gagravarr; 16.03.2017
comment
Saya pikir ada sesuatu yang salah. Sheet.getHeader() tidak mengembalikan HeaderFooter. Ini tautan javadoc. poi.apache.org/apidocs/ org/apache/poi/xssf/usermodel/ - person Parth Bhagat; 17.03.2017
comment
Ia mengembalikan Header yang merupakan HeaderFooter. Saya perlu HeaderFooter untuk melakukan transmisi ke XSSFHeaderFooter untuk bit ini. Apakah Anda mencobanya dan gagal? Apa yang telah terjadi. - person jmarkmurphy; 17.03.2017