Créer un document de feuilles de calcul en fournissant un nom de fichier
Cette rubrique montre comment utiliser les classes du Kit de développement logiciel (SDK) Open XML pour Office afin de créer par programmation un document de feuille de calcul.
Création d’un objet SpreadsheetDocument
Dans le Kit de développement logiciel (SDK) Open XML, la classe SpreadsheetDocument représente un package de document Excel. Pour créer un document Excel, créez une instance de la classe SpreadsheetDocument et remplissez-la de composants. Au minimum, le document doit avoir un composant classeur qui sert de conteneur pour le document, et au moins un composant feuille de calcul. Le texte est représenté dans le package au format XML à l'aide de balisage SpreadsheetML.
Pour créer l'instance de classe, appelez la méthode Create(Package, SpreadsheetDocumentType) . Plusieurs méthodes Create sont fournies, chacune avec une signature différente. L'exemple de code de cette rubrique utilise la méthode Create avec une signature qui requiert deux paramètres. Le premier paramètre, package, prend une chaîne de chemin d'accès complet qui représente le document que vous souhaitez créer. Le deuxième paramètre, type, est membre de l’énumération SpreadsheetDocumentType . Ce paramètre représente le type de document. Par exemple, il existe différents membres dans l'énumération SpreadsheetDocumentType pour les compléments, les modèles, les classeurs, ainsi que les modèles et classeurs prenant en charge les macros.
Remarque
[!REMARQUE] Sélectionnez le SpreadsheetDocumentType approprié et assurez-vous que le fichier persistant possède l'extension de nom de fichier correspondante correcte. Si le SpreadsheetDocumentType ne correspond pas à l'extension de nom de fichier, une erreur se produit lors de l'ouverture du fichier dans Excel.
L'exemple de code suivant appelle la méthode Create.
// Create a spreadsheet document by supplying the filepath.
// By default, AutoSave = true, Editable = true, and Type = xlsx.
SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create(filepath, SpreadsheetDocumentType.Workbook);
Une fois que vous avez créé le package de document Excel, vous pouvez y ajouter des composants. Pour ajouter le composant classeur, vous appelez la méthode AddWorkbookPart() de la classe SpreadsheetDocument.
// Add a WorkbookPart to the document.
WorkbookPart workbookPart = spreadsheetDocument.AddWorkbookPart();
workbookPart.Workbook = new Workbook();
Un composant classeur doit posséder au moins une feuille de calcul. Pour ajouter une feuille de calcul, créez un objet Sheet. Quand vous créez un objet Sheet, associez l’objet Sheet avec la classe Workbook en transmettant les paramètres Id, SheetId et Name. Utilisez la méthode GetIdOfPart(OpenXmlPart) pour obtenir le paramètre Id de l’objet Sheet. Ensuite, ajoutez la nouvelle feuille à la collection Sheet en appelant la méthode Append([]) de la classe Sheets.
Pour créer la structure de document de base à l’aide du Kit de développement logiciel (SDK) Open XML, instanciez la classe Workbook, affectez-la à la propriété WorkbookPart du composant de document main, puis ajoutez des instances de WorksheetPart, Worksheet et Sheet. L'exemple de code suivant crée une feuille de calcul, l'associe, puis l'ajoute au classeur.
// Add a WorksheetPart to the WorkbookPart.
WorksheetPart worksheetPart = workbookPart.AddNewPart<WorksheetPart>();
worksheetPart.Worksheet = new Worksheet(new SheetData());
// Add Sheets to the Workbook.
Sheets sheets = workbookPart.Workbook.AppendChild(new Sheets());
// Append a new worksheet and associate it with the workbook.
Sheet sheet = new Sheet() { Id = workbookPart.GetIdOfPart(worksheetPart), SheetId = 1, Name = "mySheet" };
sheets.Append(sheet);
Exemple de code
Voici un exemple de code complet en C# et Visual Basic.
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;
static void CreateSpreadsheetWorkbook(string filepath)
{
// Create a spreadsheet document by supplying the filepath.
// By default, AutoSave = true, Editable = true, and Type = xlsx.
SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create(filepath, SpreadsheetDocumentType.Workbook);
// Add a WorkbookPart to the document.
WorkbookPart workbookPart = spreadsheetDocument.AddWorkbookPart();
workbookPart.Workbook = new Workbook();
// Add a WorksheetPart to the WorkbookPart.
WorksheetPart worksheetPart = workbookPart.AddNewPart<WorksheetPart>();
worksheetPart.Worksheet = new Worksheet(new SheetData());
// Add Sheets to the Workbook.
Sheets sheets = workbookPart.Workbook.AppendChild(new Sheets());
// Append a new worksheet and associate it with the workbook.
Sheet sheet = new Sheet() { Id = workbookPart.GetIdOfPart(worksheetPart), SheetId = 1, Name = "mySheet" };
sheets.Append(sheet);
workbookPart.Workbook.Save();
// Dispose the document.
spreadsheetDocument.Dispose();
}