powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Apache POI docx cell nested table
2 сообщений из 2, страница 1 из 1
Apache POI docx cell nested table
    #39689192
OldBoyOdeSu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!
Вопрос в следующем, я добавляю вложенную таблицу в ячейку таблицы, делаю это следующим образом
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
  @Test
  void table_in_cell() throws Exception {
    XWPFDocument doc = new XWPFDocument();
    XWPFTable tbl_1 = doc.createTable(1,2);
    XWPFTableRow row = tbl_1.getRow(0);

    XWPFParagraph paragraph = row.getCell(1).getParagraphArray(0);
    XWPFTable tbl_2 = row.getCell(1).insertNewTbl(paragraph.getCTP().newCursor());

    row = tbl_2.createRow();
    XWPFTableCell cell_1_1 = row.createCell();
    cell_1_1.setText("TEST");

    //Тут пустое значение
    System.out.println("Value is empty:"+ cell_1_1.getText());

    //Тут <xml-fragment>TEST</xml-fragment>
    System.out.println(tbl_2.getCTTbl().getTrArray(0).getTcArray(0).getPArray(0).getRArray(0).getTArray(0));
  /*
    После сохранения в документе есть значение
    try (FileOutputStream fos = new FileOutputStream(new File("C:\\out.docx"))) {
      doc.write(fos);
    }*/
  }



Как сделать чтобы cell_1_1.getText() возвращал значение "TEST" ? Т.е. нужно как то сохранить изменения сделанные с помощью insertNewTbl чтоб они были видны в остальной части кода так как тестируемый код работает только через cell.getText()
Может кто подскажет?
...
Рейтинг: 0 / 0
Apache POI docx cell nested table
    #39689237
OldBoyOdeSu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос снят, так как в вопросе собственно и содержится ответ
"После сохранения в документе есть значение"
Так как тут всего лишь тесты то можно сохранить, но не в файл а в память
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
//Сохраним все изменения в память
    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    doc.write(byteArrayOutputStream);
    doc.close();
//Пере откроем и структура документа станет актуальной
    ByteArrayInputStream in = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
    doc = new XWPFDocument(in);
    System.out.println(doc.getTableArray(0).getRow(0).getCell(1).getTableArray(0).getRow(0).getCell(0).getText());

другого способа не нашёл
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Apache POI docx cell nested table
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]