Verschiedene Möglichkeiten, Dateien mit Node.js via C++ zu öffnen
Wie man eine Excel-Datei über einen Pfad öffnet
Entwickler können eine Microsoft Excel-Datei öffnen, indem sie den Dateipfad auf dem lokalen Computer in den Konstruktor der Workbook-Klasse übergeben. Einfach den Pfad als String im Konstruktor übergeben. Aspose.Cells erkennt automatisch den Dateityp.
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, "Book1.xlsx");
// Opening through Path
// Creating a Workbook object and opening an Excel file using its file path
const workbook1 = new AsposeCells.Workbook(filePath);
console.log("Workbook opened using path successfully!");
Wie man eine Excel-Datei über einen Stream öffnet
Es ist auch einfach, eine Excel-Datei als Stream zu öffnen. Verwenden Sie dazu eine überladene Version des Konstruktors, der das Stream-Objekt enthält, das die Datei enthält.
try {
const path = require("path");
const fs = require("fs");
const AsposeCells = require("aspose.cells.node");
// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
const filePath = path.join(dataDir, "Book2.xls");
// Opening through Stream
// Create a Stream object
const fstream = fs.createReadStream(filePath);
// Creating a Workbook object, open the file from a Stream object
// That contains the content of file and it should support seeking
const chunks = [];
fstream.on('data', (chunk) => {
chunks.push(chunk);
Wie man eine Datei nur mit Daten öffnet
Um eine Datei nur mit Daten zu öffnen, verwenden Sie die Klassen LoadOptions und LoadFilter, um die entsprechenden Attribute und Optionen der Klassen für die zu ladende Vorlage festzulegen.
const path = require("path");
const AsposeCells = require("aspose.cells.node");
// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
// Load only specific sheets with data and formulas
// Other objects, items etc. would be discarded
// Instantiate LoadOptions specified by the LoadFormat
const loadOptions = new AsposeCells.LoadOptions(AsposeCells.LoadFormat.Xlsx);
// Set LoadFilter property to load only data & cell formatting
loadOptions.setLoadFilter(new AsposeCells.LoadFilter(AsposeCells.LoadDataFilterOptions.CellData));
// Create a Workbook object and opening the file from its path
const workbook = new AsposeCells.Workbook(path.join(dataDir, "Book1.xlsx"), loadOptions);
console.log("File data imported successfully!");
Wie man nur sichtbare Blätter lädt
Beim Laden einer Workbook ist es manchmal ausreichend, nur die Daten in sichtbaren Arbeitsblättern einer Arbeitsmappe zu benötigen. Aspose.Cells erlaubt es, Daten in unsichtbaren Arbeitsblättern beim Laden einer Arbeitsmappe zu überspringen. Dazu erstellen Sie eine benutzerdefinierte Funktion, die von der Klasse LoadFilter erbt, und übergeben die Instanz an die LoadOptions.getLoadFilter()-Eigenschaft.
const path = require("path");
const AsposeCells = require("aspose.cells.node");
// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
const sampleFile = "output.xlsx";
const samplePath = path.join(dataDir, sampleFile);
// Create a sample workbook
// and put some data in first cell of all 3 sheets
const createWorkbook = new AsposeCells.Workbook();
createWorkbook.getWorksheets().get("Sheet1").getCells().get("A1").putValue("Aspose");
createWorkbook.getWorksheets().add("Sheet2").getCells().get("A1").putValue("Aspose");
createWorkbook.getWorksheets().add("Sheet3").getCells().get("A1").putValue("Aspose");
createWorkbook.getWorksheets().get("Sheet3").setIsVisible(false);
createWorkbook.save(samplePath);
// Load the sample workbook
const loadOptions = new AsposeCells.LoadOptions();
loadOptions.setLoadFilter(new AsposeCells.LoadFilter()); // Corrected line by defining LoadFilter properly
const loadWorkbook = new AsposeCells.Workbook(samplePath, loadOptions);
console.log(`Sheet1: A1: ${loadWorkbook.getWorksheets().get("Sheet1").getCells().get("A1").getValue()}`);
console.log(`Sheet1: A2: ${loadWorkbook.getWorksheets().get("Sheet2").getCells().get("A1").getValue()}`);
console.log(`Sheet1: A3: ${loadWorkbook.getWorksheets().get("Sheet3").getCells().get("A1").getValue()}`);
Hier ist die Implementierung der in der obigen Codezeile referenzierten CustomLoad-Klasse.
const { Workbook, LoadDataFilterOptions } = require("aspose.cells.node");
class CustomLoad {
startSheet(sheet) {
if (sheet.isVisible()) {
// Load everything from visible worksheet
this.loadDataFilterOptions = LoadDataFilterOptions.All;
} else {
// Load nothing
this.loadDataFilterOptions = LoadDataFilterOptions.Structure;
}
}
}