Leere Arbeitsblätter mit Node.js über C++ erkennen

Überprüfung auf belegte Zellen

Arbeitsblätter können mit Werten gefüllt sein, wobei es sich um einfache Werte (Text, numerisch, Datum/Uhrzeit) oder Formeln oder formelbasierte Werte handelt. In einem solchen Fall ist es einfach zu erkennen, ob ein Arbeitsblatt leer ist oder nicht. Alles, was wir prüfen müssen, sind die Eigenschaften Cells.getMaxDataRow() oder Cells.getMaxDataColumn(). Wenn die oben genannten Eigenschaften Null oder positive Werte zurückgeben, bedeutet dies, dass ein oder mehrere Zellen gefüllt wurden; wenn jedoch eine dieser Eigenschaften -1 zurückgibt, weist dies darauf hin, dass keine Zellen im angegebenen Arbeitsblatt gefüllt sind.

Überprüfung auf leere initialisierte Zellen

Alle Zellen mit Werten werden automatisch initialisiert; es besteht jedoch die Möglichkeit, dass ein Arbeitsblatt nur Zellen mit Formatierungen enthält. In einem solchen Szenario geben die Eigenschaften Cells.getMaxDataRow() oder Cells.getMaxDataColumn() -1 zurück, was auf das Fehlen gefüllter Werte hinweist, aber initialisierte Zellen aufgrund von Zellformatierungen können mit diesem Ansatz nicht erkannt werden. Um zu prüfen, ob ein Arbeitsblatt leere initialisierte Zellen hat, wird empfohlen, die Methode Enumerator.MoveNext auf den von Cells gesammelten Enumerator anzuwenden. Wenn die Methode Enumerator.MoveNext true zurückgibt, bedeutet dies, dass es eine oder mehrere initialisierte Zellen im Arbeitsblatt gibt.

Überprüfung auf Formen

Es ist möglich, dass ein Arbeitsblatt keine gefüllten Zellen hat; es könnte jedoch Formen & Objekte wie Steuerelemente, Diagramme, Bilder usw. enthalten. Wenn wir überprüfen möchten, ob ein Arbeitsblatt Formen enthält, können wir dies durch Inspektion der ShapeCollection.getCount() Eigenschaft tun. Ein positiver Wert zeigt die Anwesenheit von Formen im Arbeitsblatt an.

Programmierbeispiel

const path = require("path");
const AsposeCells = require("aspose.cells.node");

// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
const filePath = path.join(dataDir, "sample.xlsx");
// Loads the workbook which contains hidden external links
const book = new AsposeCells.Workbook(filePath);

// Loop over all worksheets in the workbook
for (let i = 0; i < book.getWorksheets().getCount(); i++) {
const sheet = book.getWorksheets().get(i);
// Check if worksheet has populated cells
if (sheet.getCells().getMaxDataRow() !== -1) {
console.log(`${sheet.getName()} is not empty because one or more cells are populated`);
}
// Check if worksheet has shapes
else if (sheet.getShapes().getCount() > 0) {
console.log(`${sheet.getName()} is not empty because there are one or more shapes`);
}
// Check if worksheet has empty initialized cells
else {
const range = sheet.getCells().getMaxDisplayRange();
const rangeIterator = range.getEnumerator();
if (rangeIterator.moveNext()) {
console.log(`${sheet.getName()} is not empty because one or more cells are initialized`);
}
}
}