Задать вопрос
@Raushka

Как создать таблицу в excel файле посредством Java-кода?

Всем привет!
Я новичок в java-коде и мне прилетела срочная задача где необходимо создать таблицу в xlsx файле с вложенными данными созданной таблицы.
Ниже имеется рабочий код, который берет word-файл, создает в этом файле таблицу и
далее вставляет данные в эту таблицу
Аналогично коду описанному ниже, мне нужно все тоже самое скодировать на java только с xlxs-файлом
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(blobBytes);
XWPFDocument docxFile = new XWPFDocument(OPCPackage.open(byteArrayInputStream));

        // create table
        XWPFTable table = docxFile.createTable();
        // create header of table
        XWPFTableRow headerRow = table.getRow(0);
        XWPFParagraph header1Paragraph = headerRow.getCell(0).addParagraph();
        XWPFParagraph header2Paragraph = headerRow.createCell().addParagraph();
        XWPFParagraph header3Paragraph = headerRow.createCell().addParagraph();
        XWPFParagraph header4Paragraph = headerRow.createCell().addParagraph();
        XWPFParagraph header5Paragraph = headerRow.createCell().addParagraph();
//          rows = table.createRow();
        setRun(header1Paragraph.createRun(), " № " , true, false);
        setRun(header2Paragraph.createRun(), " Ф.И.О. " , true, false);
        setRun(header3Paragraph.createRun(), " Результат " , true, false);
        setRun(header4Paragraph.createRun(), " КОД " , true, false);
        setRun(header5Paragraph.createRun(), " Дата " , true, false);

        XWPFParagraph bodyParagraph = docxFile.createParagraph();
        XWPFTableRow row1 = table.createRow();
        row1.getCell(0).setText("1");
        row1.getCell(1).setText(fioA);
        row1.getCell(2).setText(resA);
        XWPFRun row1Run = row1.getCell(3).addParagraph().createRun();
        if ((qrBytes != null) && (qrBytes.length > 0))  {
          InputStream qrByteArrayInputStream = new ByteArrayInputStream(qrBytes);
          row1Run.addPicture(qrByteArrayInputStream, 5, "",
              Units.toEMU(50.0D),
              Units.toEMU(50.0D));
        }
        row1.getCell(4).setText(dateA);


И вот мой код, который в принципе не работает( -- да, не очень-то получилось)
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(blobBytes);
XSSFWorkbook docxFile = new XSSFWorkbook(OPCPackage.open(byteArrayInputStream));
        XSSFSheet sheet = docxFile.createSheet();
        // create table
        XSSFTable table = sheet.createTable();
        // create header of table

и вот ниже закомментиованный код я уже не могу сообразить какие библиотеки мне 
можно использовать -- плиз, кто-нибудь отзовитесь пожалуйста (пробовала библиотеки
XSSFRow, XSSFCell - понимаю что данные библиотеки чисто на листе работают)
        /*XWPFTableRow headerRow = table.getRow(0);
        XWPFParagraph header1Paragraph = headerRow.getCell(0).addParagraph();
        XWPFParagraph header2Paragraph = headerRow.createCell().addParagraph();
        XWPFParagraph header3Paragraph = headerRow.createCell().addParagraph();
        XWPFParagraph header4Paragraph = headerRow.createCell().addParagraph();
        XWPFParagraph header5Paragraph = headerRow.createCell().addParagraph();
//          rows = table.createRow();
        setRun(header1Paragraph.createRun(), " № " , true, false);
        setRun(header2Paragraph.createRun(), " Ф.И.О. " , true, false);
        setRun(header3Paragraph.createRun(), " Результат " , true, false);
        setRun(header4Paragraph.createRun(), " КОД " , true, false);
        setRun(header5Paragraph.createRun(), " Дата " , true, false);

        XWPFParagraph bodyParagraph = docxFile.createParagraph();
        XWPFTableRow row1 = table.createRow();
        row1.getCell(0).setText("1");
        row1.getCell(1).setText(fioA);
        row1.getCell(2).setText(resA);
        XWPFRun row1Run = row1.getCell(3).addParagraph().createRun();
        if ((qrBytes != null) && (qrBytes.length > 0))  {
          InputStream qrByteArrayInputStream = new ByteArrayInputStream(qrBytes);
          row1Run.addPicture(qrByteArrayInputStream, 5, "",
              Units.toEMU(50.0D),
              Units.toEMU(50.0D));
        }
        row1.getCell(4).setText(dateA);*/


Заранее благодарю за помощь!
  • Вопрос задан
  • 62 просмотра
Подписаться 1 Средний 2 комментария
Пригласить эксперта
Ответы на вопрос 1
mayton2019
@mayton2019 Куратор тега Java
Bigdata Engineer
Подключи в зависимости apache poi.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы