Gestión de imágenes
Aspose.Cells para Python via .NET permite a los desarrolladores agregar imágenes a las hojas de cálculo en tiempo de ejecución. Además, la posición de estas imágenes puede controlarse en tiempo de ejecución, que se discute con más detalle en las siguientes secciones.
Este artículo explica cómo agregar imágenes e insertar una imagen que muestre el contenido de ciertas celdas.
Añadir imágenes
Agregar imágenes a una hoja de cálculo es muy fácil. Solo toma unas pocas líneas de código: Simplemente llame al método add de la colección pictures (encapsulada en el objeto Worksheet). El método add toma los siguientes parámetros:
- Índice de fila superior izquierda, el índice de la fila superior izquierda.
- Índice de columna superior izquierda, el índice de la columna superior izquierda.
- Nombre del archivo de imagen, el nombre del archivo de imagen, completo con la ruta.
from aspose.cells import Workbook | |
from os import os, path | |
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET | |
# The path to the documents directory. | |
dataDir = RunExamples.GetDataDir(".") | |
# Create directory if it is not already present. | |
IsExists = path.isdir(dataDir) | |
if notIsExists: | |
os.makedirs(dataDir) | |
# Instantiating a Workbook object | |
workbook = Workbook() | |
# Adding a new worksheet to the Workbook object | |
sheetIndex = workbook.worksheets.add() | |
# Obtaining the reference of the newly added worksheet by passing its sheet index | |
worksheet = workbook.worksheets[sheetIndex] | |
# Adding a picture at the location of a cell whose row and column indices | |
# Are 5 in the worksheet. It is "F6" cell | |
worksheet.pictures.add(5, 5, dataDir + "logo.jpg") | |
# Saving the Excel file | |
workbook.save(dataDir + "output.xls") |
Posicionamiento de imágenes
Hay dos formas posibles de controlar la posición de las imágenes usando Aspose.Cells para Python via .NET:
- Posicionamiento proporcional: define una posición proporcional a la altura y ancho de la fila.
- Posicionamiento absoluto: define la posición exacta en la página donde se insertará la imagen, por ejemplo, 40 píxeles a la izquierda y 20 píxeles debajo del borde de la celda.
Posicionamiento proporcional
Los desarrolladores pueden posicionar las imágenes proporcionalmente a la altura de la fila y al ancho de la columna utilizando las propiedades upper_delta_x y upper_delta_y del objeto Aspose.Cells.Drawing.Picture. Un objeto Picture se puede obtener de la colección pictures pasando su índice de imagen. Este ejemplo coloca una imagen en la celda F6.
from aspose.cells import Workbook | |
from os import os, path | |
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET | |
# The path to the documents directory. | |
dataDir = RunExamples.GetDataDir(".") | |
# Create directory if it is not already present. | |
IsExists = path.isdir(dataDir) | |
if notIsExists: | |
os.makedirs(dataDir) | |
# Instantiating a Workbook object | |
workbook = Workbook() | |
# Adding a new worksheet to the Workbook object | |
sheetIndex = workbook.worksheets.add() | |
# Obtaining the reference of the newly added worksheet by passing its sheet index | |
worksheet = workbook.worksheets[sheetIndex] | |
# Adding a picture at the location of a cell whose row and column indices | |
# Are 5 in the worksheet. It is "F6" cell | |
pictureIndex = worksheet.pictures.add(5, 5, dataDir + "logo.jpg") | |
# Accessing the newly added picture | |
picture = worksheet.pictures[pictureIndex] | |
# Positioning the picture proportional to row height and colum width | |
picture.upper_delta_x = 200 | |
picture.upper_delta_y = 200 | |
# Saving the Excel file | |
workbook.save(dataDir + "book1.out.xls") |
Posicionamiento absoluto
Los desarrolladores también pueden posicionar las imágenes de forma absoluta utilizando las propiedades left y top del objeto Picture. Este ejemplo coloca una imagen en la celda F6, a 60 píxeles a la izquierda y 10 píxeles arriba de la celda.
from aspose.cells import Workbook | |
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET | |
# The path to the documents directory. | |
dataDir = RunExamples.GetDataDir(".") | |
# Instantiating a Workbook object | |
workbook = Workbook() | |
# Adding a new worksheet to the Workbook object | |
sheetIndex = workbook.worksheets.add() | |
# Obtaining the reference of the newly added worksheet by passing its sheet index | |
worksheet = workbook.worksheets[sheetIndex] | |
# Adding a picture at the location of a cell whose row and column indices | |
# Are 5 in the worksheet. It is "F6" cell | |
pictureIndex = worksheet.pictures.add(5, 5, dataDir + "logo.jpg") | |
# Accessing the newly added picture | |
picture = worksheet.pictures[pictureIndex] | |
# Absolute positioning of the picture in unit of pixels | |
picture.left = 60 | |
picture.top = 10 | |
# Saving the Excel file | |
workbook.save(dataDir + "book1.out.xls") |
Insertar una imagen basada en referencia de celda
Aspose.Cells para Python via .NET permite mostrar el contenido de una celda en una forma de imagen. Puedes vincular la imagen a la celda que contiene los datos que deseas mostrar. Debido a que la celda o rango de celdas está vinculado al objeto gráfico, los cambios que hagas en los datos de esa celda o rango de celdas aparecerán automáticamente en el objeto gráfico.
Añadir una imagen a la hoja de cálculo llamando al método add_picture de la colección ShapeCollection (encapsulada en el objeto Worksheet). Especifica el rango de celdas utilizando el atributo formula del objeto Picture.
from aspose.cells import Workbook | |
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET | |
# The path to the documents directory. | |
dataDir = RunExamples.GetDataDir(".") | |
# Instantiate a new Workbook | |
workbook = Workbook() | |
# Get the first worksheet's cells collection | |
cells = workbook.worksheets[0].cells | |
# Add string values to the cells | |
cells.get("A1").put_value("A1") | |
cells.get("C10").put_value("C10") | |
# Add a blank picture to the D1 cell | |
pic = workbook.worksheets[0].shapes.add_picture(0, 3, 10, 6, None) | |
# Specify the formula that refers to the source range of cells | |
pic.formula = "A1:C10" | |
# Update the shapes selected value in the worksheet | |
workbook.worksheets[0].shapes.update_selected_value() | |
# Save the Excel file. | |
workbook.save(dataDir + "output.out.xls") |