Gérer les propriétés du document avec Node.js via C++

Introduction

Microsoft Excel permet d’ajouter des propriétés aux fichiers de feuille de calcul. Ces propriétés de document fournissent des informations utiles et sont divisées en 2 catégories comme détaillé ci-dessous.

  • Propriétés système définies (intégrées) : Les propriétés intégrées contiennent des informations générales sur le document telles que le titre du document, le nom de l’auteur, les statistiques du document, etc.
  • Propriétés utilisateur définies (personnalisées) : Propriétés personnalisées définies par l’utilisateur final sous forme de paire nom-valeur.

Comment gérer les propriétés de document à l’aide de Microsoft Excel

Microsoft Excel permet de gérer les propriétés du document des fichiers Excel de manière WYSIWYG. Veuillez suivre les étapes ci-dessous pour ouvrir la boîte de dialogue Propriétés dans Excel 2016.

  1. Dans le menu Fichier, sélectionnez Infos.
Sélection du menu Infos
todo:image_alt_text
  1. Cliquez sur le titre Propriétés et sélectionnez “Propriétés avancées”.
Cliquez pour sélectionner les propriétés avancées
todo:image_alt_text
  1. Gérez les propriétés de document du fichier.
Boîte de dialogue des propriétés
todo:image_alt_text
Dans la boîte de dialogue des propriétés, il y a différents onglets, comme Général, Résumé, Statistiques, Contenu et Personnalisés. Chaque onglet aide à configurer différents types d’informations liées au fichier. L’onglet Personnalisé est utilisé pour gérer les propriétés personnalisées.

Comment travailler avec les propriétés de document à l’aide d’Aspose.Cells

Les développeurs peuvent gérer dynamiquement les propriétés de document à l’aide des API Aspose.Cells. Cette fonctionnalité aide les développeurs à stocker des informations utiles avec le fichier, telles que la date de réception du fichier, le traitement, l’horodatage, etc.

Comment accéder aux propriétés de document

Les API Aspose.Cells supportent les deux types de propriétés de document, intégrées et personnalisées. La classe Workbook de Aspose.Cells représente un fichier Excel et, comme un fichier Excel, la classe Workbook peut contenir plusieurs feuilles, chacune représentée par la classe Worksheet tandis que la collection de feuilles est représentée par la classe WorksheetCollection.

Utiliser WorksheetCollection pour accéder aux propriétés du document du fichier comme décrit ci-dessous.

Les deux, WorksheetCollection.getBuiltInDocumentProperties() et WorksheetCollection.getCustomDocumentProperties(), renvoient l’instance de Aspose.Cells.Properties.DocumentPropertyCollection. Cette collection contient Aspose.Cells.Properties.DocumentProperty objets, chacun représentant une propriété de document intégrée ou personnalisée.

Il appartient à l’application de déterminer comment accéder à une propriété, c’est-à-dire en utilisant l’index ou le nom de la propriété à partir de DocumentPropertyCollection comme illustré ci-dessous.

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-document-properties.xlsx");
// Instantiate a Workbook object
// Open an Excel file
const workbook = new AsposeCells.Workbook(filePath);

// Retrieve a list of all custom document properties of the Excel file
const customProperties = workbook.getCustomDocumentProperties();

// Accessing a custom document property by using the property name
const customProperty1 = customProperties.get("ContentTypeId");
console.log(`${customProperty1.getName()} ${customProperty1.getValue()}`);

// Accessing the same custom document property by using the property index
const customProperty2 = customProperties.get(0);
console.log(`${customProperty2.getName()} ${customProperty2.getValue()}`);

La classe Aspose.Cells.Properties.DocumentProperty permet de récupérer le nom, la valeur et le type de la propriété du document :

Nom du membre Description Méthode ToXXX
Boolean Le type de données de la propriété est Boolean ToBool
Date Le type de données de la propriété est DateTime. Notez que Microsoft Excel ne stocke que la partie date, aucune heure ne peut être stockée dans une propriété personnalisée de ce type ToDateTime
Float Le type de données de la propriété est Double ToDouble
Number Le type de données de la propriété est Int32 ToInt
String Le type de donnée de la propriété est string ToString
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-document-properties.xlsx");
// Instantiate a Workbook object
// Open an Excel file
const workbook = new AsposeCells.Workbook(filePath);

// Retrieve a list of all custom document properties of the Excel file
const customProperties = workbook.getCustomDocumentProperties();

// Accessing a custom document property
const customProperty1 = customProperties.get(0);

// Storing the value of the document property as an object
const objectValue = customProperty1.getValue();

// Accessing a custom document property
const customProperty2 = customProperties.get(1);

// Checking the type of the document property and then storing the value of the
// document property according to that type
if (customProperty2.getType() === AsposeCells.PropertyType.String) {
const value = customProperty2.getValue().toString();
console.log(`${customProperty2.getName()} : ${value}`);
}

Comment ajouter ou supprimer des propriétés de document personnalisées

Comme nous l’avons décrit précédemment au début de ce sujet, les développeurs ne peuvent pas ajouter ou supprimer des propriétés intégrées car ces propriétés sont système-définies, mais il est possible d’ajouter ou de supprimer des propriétés personnalisées car celles-ci sont définies par l’utilisateur.

Comment ajouter des propriétés personnalisées

Les API Aspose.Cells ont exposé la méthode add(string, string) pour la classe CustomDocumentPropertyCollection afin d’ajouter des propriétés personnalisées à la collection. La méthode add(string, string) ajoute la propriété au fichier Excel et retourne une référence à la nouvelle propriété de document sous forme d’objet Aspose.Cells.Properties.DocumentProperty.

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

// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
// Instantiate a Workbook object
// Open an Excel file
const workbook = new AsposeCells.Workbook(path.join(dataDir, "sample-document-properties.xlsx"));

// Retrieve a list of all custom document properties of the Excel file
const customProperties = workbook.getCustomDocumentProperties();

// Adding a custom document property to the Excel file
customProperties.add("Publisher", "Aspose");

// Saving resultant spreadsheet
workbook.save(path.join(dataDir, "out_sample-document-properties.xlsx"));

Comment configurer la propriété de document personnalisée “Lien vers le contenu”

Pour créer une propriété personnalisée liée au contenu d’une plage donnée, appelez la méthode CustomDocumentPropertyCollection.addLinkToContent(string, string) en passant le nom de la propriété et la source. Vous pouvez vérifier si une propriété est configurée comme liée au contenu en utilisant la propriété DocumentProperty.isLinkedToContent(). De plus, il est également possible d’obtenir la plage source en utilisant la propriété getSource() de la classe DocumentProperty.

Nous utilisons un fichier modèle Microsoft Excel simple dans l’exemple. Le classeur a une plage nommée définie étiquetée MyRange qui fait référence à une valeur de cellule.

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

// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
// Instantiate an object of Workbook
// Open an Excel file
const workbook = new AsposeCells.Workbook(path.join(dataDir, "sample-document-properties.xlsx"));

// Retrieve a list of all custom document properties of the Excel file
const customProperties = workbook.getWorksheets().getCustomDocumentProperties();

// Add link to content.
customProperties.addLinkToContent("Owner", "MyRange");

// Accessing the custom document property by using the property name
const customProperty1 = customProperties.get("Owner");

// Check whether the property is linked to content
const isLinkedToContent = customProperty1.isLinkedToContent();

// Get the source for the property
const source = customProperty1.getSource();

// Save the file
workbook.save(path.join(dataDir, "out_sample-document-properties.xlsx"));

Comment supprimer des propriétés personnalisées

Pour supprimer des propriétés personnalisées avec Aspose.Cells, appelez la méthode DocumentPropertyCollection.remove(string) et transmettez le nom de la propriété du document à supprimer.

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

// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
// Instantiate a Workbook object
// Open an Excel file
const workbook = new AsposeCells.Workbook(path.join(dataDir, "sample-document-properties.xlsx"));

// Retrieve a list of all custom document properties of the Excel file
const customProperties = workbook.getCustomDocumentProperties();

// Removing a custom document property
customProperties.remove("Publisher");

// Save the file
workbook.save(path.join(dataDir, "out_sample-document-properties.xlsx"));

Sujets avancés