Установить границу и оптимальную ширину для столбца в файле ods - PullRequest
0 голосов
/ 05 сентября 2018

Я пытаюсь найти способ установить границы для каждой ячейки и оптимальную ширину для каждого столбца перед созданием файла 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 Ответ

0 голосов
/ 05 сентября 2018

Я не знаю, возможно ли установить содержимое, соответствующее ширине, но я могу показать вам, как установить конкретную ширину столбца. Заменить строку:

    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);

EDIT:

Это было для версии 1.3. Для версии 1.4rc2 используйте:

    newSpreadSheet.getFirstSheet().getColumn(0).setWidth(Length.MM(100));
    newSpreadSheet.getFirstSheet().getColumn(1).setWidth(Length.INCH(5));
...