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:
- 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:
- Crear una instancia del libro de trabajo
- Cree una hoja de cálculo en el libro de trabajo anterior.
- Crear filas usando XSSFRow
- Cree una celda usando XSSFCell.
- Cree un patriarca mediante HSSFPatriarch.
- Para colocar la forma en la hoja de Excel, cree un ancla mediante HSSFClientAnchor.
- Establezca el tipo de forma (línea, óvalo, rectángulo, etc.)
- Establezca cualquier otro detalle de estilo que describa la forma. (por ejemplo: grosor de línea, etc.)
- Escribir el contenido en el libro de trabajo definiendo el objeto de tipo FileOutputStream
- 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