Programa Java para dibujar una forma en una hoja de Excel usando Apache POI

Apache POI admite la impresión personalizada al permitir que los usuarios seleccionen un rango de celdas para configurar el área de impresión deseada en una hoja de trabajo utilizando el programa Java. La forma superior es el patriarca. Esto no es visible en la hoja en absoluto. Para comenzar a dibujar, debe llamar a createPatriarch en la clase HSSFSheet.

Tomemos un ejemplo para crear una forma ovalada usando todo el estilo del archivo de Excel usando Apache POI.

Acercarse:

  1. Primero, necesitamos agregar la Dependencia de Maven al proyecto maven, podemos incluir la dependencia de PDI usando el archivo pom.xml como se muestra a continuación:
  2. Crear una instancia del libro de trabajo
  3. Cree una hoja de cálculo en el libro de trabajo anterior.
  4. Crear filas usando XSSFRow
  5. Cree una celda usando XSSFCell.
  6. Cree un patriarca mediante HSSFPatriarch.
  7. Para colocar la forma en la hoja de Excel, cree un ancla mediante HSSFClientAnchor.
  8. Establezca el tipo de forma (línea, óvalo, rectángulo, etc.)
  9. Establezca cualquier otro detalle de estilo que describa la forma. (por ejemplo: grosor de línea, etc.)
  10. Escribir el contenido en el libro de trabajo definiendo el objeto de tipo FileOutputStream
  11. Cierra la conexión del archivo.
<dependency>  
      <groupId>org.apache.poi</groupId>  
      <artifactId>poi</artifactId>  
      <version>3.9</version>  
</dependency>

Métodos requeridos

Método 1: HSSFClientAnchor()

  • HSSFClientAnchor(int dx1, int dy1, int dx2, int dy2, columna corta 1, fila interna 1, columna corta 2, fila interna 2)
  • Crea un nuevo ancla de cliente y establece las coordenadas superior izquierda e inferior derecha del ancla.
  • Nota : Microsoft Excel a veces parece no permitir un y1 más alto que y2 o un x1 más alto que x2, ¡es posible que deba invertirlos y dibujar formas volteadas vertical u horizontalmente!
  • Parámetros:
    • dx1: la coordenada x dentro de la primera celda.
    • dy1: la coordenada y dentro de la primera celda.
    • dx2: la coordenada x dentro de la segunda celda.
    • dy2: la coordenada y dentro de la segunda celda.
    • col1: la columna (basada en 0) de la primera celda.
    • fila1: la fila (basada en 0) de la primera celda.
    • col2: la columna (basada en 0) de la segunda celda.
    • fila2: la fila (basada en 0) de la segunda celda.

Método 2: crearFormaSimple()

  • Crea una forma simple. Esto incluye formas tales como líneas, rectángulos y óvalos.
  • Parámetros : ancla el cliente ancla describe cómo este grupo se adjunta a la hoja.
  • Devuelve : la forma recién creada.

Método 3: setShapeType(HSSFSimpleShape.OBJECT_TYPE_OVAL)

  • Parámetros : valor – tipo de forma

Método 4: setLineStyleColor(8, 8, 8)

  • El color se aplica a las líneas de esta forma.
  • Parámetros : rojo verde azul

Método 5: establecer Color de relleno (100, 10, 150)

  • El color se utiliza para rellenar esta forma.
  • Parámetros : rojo verde azul

Método 6: setLineWidth(HSSFShape.LINEWIDTH_ONE_PT * 3)

  • Establece el ancho de la línea. 12700 = 1 punto.
  • Parámetros : lineWidth ancho en EMU. 12700EMU = 1 punto

Método 7: setLineStyle(HSSFShape.LINESTYLE_DOTSYS)

  • Establece el estilo de línea.
  • Parámetros : lineStyle Una de las constantes en LINESTYLE_

Implementación:

Java

// 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 attributes 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 successfully");
        }
 
        // Catch block to handle the exceptions
        catch (FileNotFoundException e) {
 
            // Displaying error message for console window
            // when program is not successfully executed
            System.out.println("ERROR!! " + e.getMessage());
        }
    }
}

Salida: en la ventana de la consola

Cuando el programa se ejecuta con éxito.

GFG.xlsx is written successfully.

Cuando el programa no se ejecuta con éxito.

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

Salida: Libro de trabajo (archivo de Excel)

Publicación traducida automáticamente

Artículo escrito por nandinigujral y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *