Sto provando a creare alcuni file xlsx utilizzando la libreria POI Apache per Java e tutto ciò che serve per creare file funziona correttamente.Problemi di adattamento del foglio a una singola pagina nei file xlsx utilizzando la libreria POI Apache
Il problema si presenta quando voglio stampare quei file usando una stampante fisica. Voglio rendere ogni foglio delle mie cartelle di lavoro adatto a una singola pagina. Mi guardai intorno nella documentazione e il codice seguente sarei dovuto lavorare:
XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet("format sheet");
PrintSetup ps = sheet.getPrintSetup();
sheet.setAutobreaks(true);
ps.setFitHeight((short)1);
ps.setFitWidth((short)1);
for(int i = 0; i < 100; ++i){
sheet.createRow(i);
sheet.getRow(i).createCell(0).setCellValue("Test " + i);
}
FileOutputStream output = new FileOutputStream("Test.xlsx");
wb.write(output);
output.close();
Ma non ... Quando provo a stamparlo, stampa a tre fogli (che cosa sarebbe effettivamente supporre per stampare se non ho usato la parte PrintSetup). Quindi il codice non fa proprio niente.
Qualcuno può dirmi cosa c'è di sbagliato in quel codice?
Inoltre, ho un'altra domanda sulla stampa di file xlsx: voglio sapere se c'è un modo per stampare i file xlsx dal mio programma Java senza realmente aprire i file e fare clic su stampa? Come wb.printAllSheetsInWorkbook(); o qualcosa del genere.
L'ho trovato mentre cercavo un problema simile ma utilizzando NPOI (porta .NET di POI) e ho seguito le azioni equivalenti che hai citato con la minima variazione; Ho impostato FitHeight = 0 in modo che Excel esegua "Adatta tutte le colonne in una pagina". Ha funzionato come un fascino! Grazie! – Rynkadink
Mi aiuta (http://stackoverflow.com/a/12072291/3587592). – 0x5a4d
Aggiunta di sheet.setAutobreaks (true); before sheet.setFitToPage (true); ha funzionato per me –