Установить границу и оптимальную ширину для столбца в файле ods
Я пытаюсь найти способ установить границы для каждой ячейки и оптимальную ширину для каждого столбца перед созданием файла ods [или после создания файла - я не против). Я пишу программу на Java и использую библиотеку jopendocument для создания файла ods, который богат методами и инструментами, но, к сожалению, я не могу найти какой-либо метод в документации, чтобы установить границу или оптимальную ширину для столбца поэтому я хотел бы знать, если кто-нибудь знает библиотеку или способ сделать это.
public static void QuadernoFatture() throws FileNotFoundException, IOException {
fatture.sort(Comparator.comparing(StrutturaFattura::getNumero));
final Object[][] data = new Object[fatture.size()][7];
for(int i=0;i<fatture.size();i++) {
data[i]=new Object[] {fatture.get(i).cliente,fatture.get(i).numero,fatture.get(i).imponibile,fatture.get(i).iva,
fatture.get(i).TotFatt,fatture.get(i).r_a,fatture.get(i).TotPagare};
}
fatture.clear();
String[] columns = new String[] {"CLIENTE" , "N° FATTURA" , "IMPONIBILE" , "IVA" , "TOTALE FATTURA" , "R_ACCONTO" , "TOTALE DA PAGARE"};
TableModel model = new DefaultTableModel(data,columns);
Date now = new Date();
SimpleDateFormat dateFormatter = new SimpleDateFormat("MMMM_yyyy");
final File file = new File("/home/max/Documents/quadernoFatture/QuadernoFatture_" +dateFormatter.format(now).toString()+".ods");
SpreadSheet.createEmpty(model).saveAs(file);
OOUtils.open(file);
}
1 ответ
Я не знаю, возможно ли установить содержимое, соответствующее ширине, но я могу показать вам, как установить конкретную ширину столбца. Заменить строку:
SpreadSheet.createEmpty(model).saveAs(file);
со строками:
SpreadSheet newSpreadSheet = SpreadSheet.createEmpty(model);
newSpreadSheet.getFirstSheet().getColumn(0).setWidth(100);
newSpreadSheet.getFirstSheet().getColumn(1).setWidth(200);
newSpreadSheet.saveAs(file);
РЕДАКТИРОВАТЬ:
Это было для версии 1.3. Для версии 1.4rc2 используйте:
newSpreadSheet.getFirstSheet().getColumn(0).setWidth(Length.MM(100));
newSpreadSheet.getFirstSheet().getColumn(1).setWidth(Length.INCH(5));