Detectar hojas de cálculo vacías

Buscar celdas pobladas

Las hojas de cálculo pueden tener una o más celdas rellenadas con valores, donde un valor puede ser simple (texto, numérico, fecha/hora) o una fórmula o un valor basado en fórmula. En tal caso, es fácil detectar si una hoja de cálculo dada está vacía o no. Todo lo que tenemos que comprobar son las propiedades Cells.max_data_row o Cells.max_data_column. Si las propiedades mencionadas devuelven cero o valores positivos, eso significa que una o más celdas han sido rellenadas, sin embargo, si alguna de estas propiedades devuelve -1, eso indica que ninguna de las celdas ha sido rellenada en la hoja de cálculo dada.

Comprobar celdas inicializadas vacías

Todas las celdas que tienen valores se inicializan automáticamente, sin embargo, existe la posibilidad de que una hoja tenga celdas solo con formato aplicado. En tal escenario, las propiedades Cells.max_data_row o Cells.max_data_column devolverán -1 indicando la ausencia de valores poblados pero no detectables en celdas con formato mediante este método. Para verificar si una hoja tiene celdas inicializadas vacías, se recomienda usar el método IEnumerator.MoveNext en el enumerador obtenido de la colección Cells. Si el método IEnumerator.MoveNext devuelve true, eso significa que hay una o más celdas inicializadas en la hoja dada.

Comprobar formas

Es posible que una hoja dada no tenga celdas pobladas, sin embargo, puede contener formas y objetos como controles, gráficos, imágenes, etc. Si necesitamos verificar si una hoja contiene alguna forma, podemos hacerlo inspeccionando los elementos ShapeCollection. Cualquier valor positivo indica la presencia de(s) forma(s) en la hoja.

Ejemplo de Programación

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(".")
# Create an instance of Workbook and load an existing spreadsheet
book = Workbook(dataDir + "sample.xlsx")
# Loop over all worksheets in the workbook
for i in range(len(book.worksheets)):
sheet = book.worksheets[i]
# Check if worksheet has populated cells
if sheet.cells.max_data_row != -1:
print(sheet.name + " is not empty because one or more cells are populated")
else:
if len(sheet.shapes) > 0:
print(sheet.name + " is not empty because there are one or more shapes")
else:
range = sheet.cells.max_display_range
rangeIterator = range.get_enumerator()
if rangeIterator.__next__():
print(sheet.name + " is not empty because one or more cells are initialized")