Java-программа для рисования фигуры на листе Excel с использованием Apache POI

Java-программа для рисования Изучение

Apache POI поддерживает настраиваемую печать, позволяя пользователям выбирать диапазон ячеек, чтобы настроить желаемую область печати на листе с помощью программы Java. Самая верхняя фигура — патриарх. На листе этого вообще не видно. Чтобы начать рисовать, вам нужно вызвать createPatriarch в классе HSSFSheet.

Давайте возьмем пример для создания овальной формы, используя все стили для файла Excel, используя Apache POI.

Approach:

  1. Во-первых, нам нужно добавить зависимость Maven в проект maven, мы можем включить зависимость POI, используя файл pom.xml, как показано ниже:
  2. Создание экземпляра книги
  3. Создайте электронную таблицу в указанной выше рабочей книге.
  4. Создание строк с помощью XSSFrow
  5. Создайте ячейку с помощью XSSFCell.
  6. Создайте патриарха с помощью HSSFPatriarch.
  7. Для размещения фигуры на листе Excel создайте привязку с помощью HSSFClientAnchor.
  8. Установите тип формы (линия, овал, прямоугольник и т. д.)
  9. Установите любые другие детали стиля, описывающие фигуру. (например, толщина линии и т. д.)
  10. Запись содержимого в книгу путем определения объекта типа FileOutputStream.
  11. Закройте соединение файла.
<dependency>  
      <groupId>org.apache.poi</groupId>  
      <artifactId>poi</artifactId>  
      <version>3.9</version>  
</dependency>

Требуемые методы

Метод 1: HSSFClientAnchor()

HSSFClientAnchor (int dx1, int dy1, int dx2, int dy2, короткий col1, int row1, короткий col2, int row2)
Создает новую клиентскую привязку и устанавливает верхнюю левую и нижнюю правую координаты привязки.

Примечание. Microsoft Excel иногда не допускает более высокое значение y1, чем y2, или большее значение x1, чем значение x2. Возможно, вам придется обратить их и нарисовать фигуры, перевернутые по вертикали или по горизонтали!

Параметры:

  • dx1 — координата x в первой ячейке.
  • dy1 — координата y в первой ячейке.
  • dx2 — координата x во второй ячейке.
  • dy2 — координата y во второй ячейке.
  • col1 — столбец (на основе 0) первой ячейки.
  • row1 — строка (на основе 0) первой ячейки.
  • col2 — столбец (отсчитываемый от 0) второй ячейки.
  • row2 — строка (отсчитываемая от 0) второй ячейки.
Читайте также:  Будущее разработки для настольных ПК

Способ 2: создатьSimpleShape()

Создает простую форму. Это включает в себя такие формы, как линии, прямоугольники и овалы.
Параметры: anchor клиентский якорь описывает, как эта группа прикрепляется к листу.
Возвраты: только что созданная форма.

Метод 3: setShapeType (HSSFSimpleShape.OBJECT_TYPE_OVAL)

Параметры: значение — shapeType

Способ 4: setLineStyleColor(8, 8, 8)

Цвет применяется к линиям этой формы.
Параметры: красный зеленый синий

Способ 5: установитьFillColor(100, 10, 150)

Цвет используется для заполнения этой формы.
Параметры: красный зеленый синий

Способ 6: setLineWidth(HSSFShape.LINEWIDTH_ONE_PT * 3)

Устанавливает ширину линии. 12700 = 1 балл.
Параметры: ширина линии в EMU. 12700EMU = 1 очко

Способ 7: setLineStyle(HSSFShape.LINESTYLE_DOTSYS)

Устанавливает стиль линии.
Параметры: lineStyle Одна из констант в LINESTYLE_

Реализация:

// Java Program to Creating an Oval Shape Using all the
// styling to Excel File using Apache POI
 
// Importing required classes
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
import org.apache.poi.hssf.usermodel.HSSFPatriarch;
import org.apache.poi.hssf.usermodel.HSSFShape;
import org.apache.poi.hssf.usermodel.HSSFSimpleShape;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
 
// Main class
public class GFG {
 
    // Main driver method
    public static void main(String args[])
        throws IOException
    {
        // Naming a workbook
        String excelfilename = "GFG.xls";
 
        // Creating a workbook
        Workbook workbook = new HSSFWorkbook();
 
        // Creating a spreadsheet by creating an object of
        // XSSFSheet and also give name
        Sheet spreadsheet
            = workbook.createSheet("XLDrawingShape");
 
        // Creating an object patriarch of HSSFPatriarch.
        HSSFPatriarch patriarch
            = (HSSFPatriarch)
                  spreadsheet.createDrawingPatriarch();
 
        // Creating an object anchor of HSSFClientAnchor
        // and also set a value
        HSSFClientAnchor anchor = new HSSFClientAnchor(
            0, 0, 1023, 255, (short)1, 0, (short)5, 4);
 
        // Creating an object shape of HSSFSimpleShape
        HSSFSimpleShape shape
            = patriarch.createSimpleShape(anchor);
 
        // Setting all the atributes of shape
        shape.setShapeType(
            HSSFSimpleShape.OBJECT_TYPE_OVAL);
        shape.setLineStyleColor(8, 8, 8);
        shape.setFillColor(100, 10, 150);
        shape.setLineWidth(HSSFShape.LINEWIDTH_ONE_PT * 3);
        shape.setLineStyle(HSSFShape.LINESTYLE_DOTSYS);
 
        // try block to check for exceptions
        try {
 
            // Placing the output file in default location
            // and also kept in try catch block
            FileOutputStream outputfile
                = new FileOutputStream(excelfilename);
 
            // Writing to workbook
            workbook.write(outputfile);
 
            // Closing workbook using close() method
            outputfile.close();
 
            // Displaying message for console window when
            // program is successfully executed
            System.out.println(excelfilename
                               + " is written sucessfully");
        }
 
        // Catch block to handle the exce[tions
        catch (FileNotFoundException e) {
 
            // Displaying error message for console window
            // when program is not successfully executed
            System.out.println("ERROR!! " + e.getMessage());
        }
    }
}

Вывод: в окне консоли

Когда программа успешно выполнена.

GFG.xlsx is written successfully.

Когда программа не выполняется успешно.

ERROR!! GFG.xlsx (The process cannot access the file because it is being used by another process)

Выход: рабочая книга (файл excel)

Java-программа для рисования

Оцените статью
bestprogrammer.ru
Добавить комментарий