lunedì 23 marzo 2026

C# creazione di un file word (docx) con .Net 9 ed openXML

In questo articolo, vedremo come creare un semplice documento Word, di tipo .docx, con la tecnologia .Net 9 (ma si può applicare anche a versioni precedenti) utilizzando il linguaggio di programmazione C# e il pacchetto nuget openXML.
Questo componente permette la creazione e gestione dei file Word, permettendo crearli o modificarli.

Creazione del progetto

Si crea un nuovo progetto .Net utilizzando l'ambiente di sviluppo Visual Studio 2022 Community, oppure aprire un progetto esistente. Come versione del Framework, usiamo l'ultima versione in cui stiamo scrivendo l'articolo, la versione .Net 9.
Selezioniamo come tipo di progetto "Windows Application".

Al progetto aggiungiamo un controllo tipo "Button", questo controllo, all'evento click permetterà la creazione del file Microsoft Word.
Aggiungiamo al progetto il riferimento alla libreria "DocumentFormat.OpenXml" il tutto come mostrato nella figura seguente

Creazione di un file Word con .Net e C#



Stesura del codice

Terminata la creazione del progetto, non resta che scrivere il codice, per creare un documento Word ed inserire del testo al suo interno.
Passiamo in visualizzazione codice, ed in alto, sopra ad ogni dichiarazione, dove si inseriscono i vari spazio dei nomi (namespace), aggiungiamo quelli per la gestione di Microsoft Word.

Di seguito si riporta il frammento di codice delle suddette operazioni


C#

using Text = DocumentFormat.OpenXml.Wordprocessing.Text;

 




Passiamo in visualizzazione grafica, e facciamo doppio click sul pulsante in modo che permette da passare i visualizzazione codice dell'evento click del controllo.
La classe WordProcessingDocument, permette di gestire i file di Microsoft Word , mentre la classe MainDocumentPart, fornisce la gestione del singolo documento Word, nel quale tramite le classi "Paragraph" e "Text" possiamo gestire il contenuto del documento

Di seguito si riporta il frammento di codice per la creazione di un documento Word, nel quale impostare del testo.


C#

private void BtnWord_Click(object sender, EventArgs e)

 {

     try

     {

 

         string filePath = "C:\\Varie\\DocumentoWordOpenXML.docx";

 

             

         //Creazione del documento documento Word

         using (WordprocessingDocument wordDocument = WordprocessingDocument.Create(filePath, DocumentFormat.OpenXml.WordprocessingDocumentType.Document))

         {

             //Gestione del documento principale

             MainDocumentPart mainPart = wordDocument.AddMainDocumentPart();

             mainPart.Document = new Document();

             Body body = new Body();

 

             //Creazione del paragrafo con del testo

             Paragraph paragraph = new Paragraph();

             Run run = new Run();

             Text text = new Text("Benvenuti nella creazione di documenti Word");

 

             //Struttura del documento

             run.Append(text);

             paragraph.Append(run);

             body.Append(paragraph);

             mainPart.Document.Append(body);

             mainPart.Document.Save();

         }

 

     }

     catch (Exception ex)

     {

         MessageBox.Show(ex.Message);

     }

 }




Ora non resta che seguire il codice e fare click sul pulsante per verificare il codice appena scritto.

Nel caso che invece si vuole formattare la scritta, con lo stile in corsivo, grassetto ed allineato al centro, tramite le classi "ParagraphProperties", "RunProperties",  possiamo applicare diverse formattazione.

Di seguito si riporta una funzione, che richiamandola dal pulsante, crea un documento con il testo al centro, grassetto, in corsivo ed allineato al centro. 

C#

private void CreaDocxConFormattazione(string NomeFile)

 {

     try

     {

 

               

         using (WordprocessingDocument wordDocument = WordprocessingDocument.Create(

     NomeFile, WordprocessingDocumentType.Document))

         {

             MainDocumentPart mainPart = wordDocument.AddMainDocumentPart();

             mainPart.Document = new Document();

             Body body = new Body();

 

             //Gestione del paragrafo con formattazione al centro

             ParagraphProperties paragraphProperties = new ParagraphProperties(

                 new Justification() { Val = JustificationValues.Center });

 

             //Imposta lo stile del testo

             RunProperties runProperties = new RunProperties(

                 new Bold(),                       // Grassetto

                 new Italic(),                     // Corsivo

                 new FontSize() { Val = "28" },    // 28 = 14pt (misura in half-points)

                 new RunFonts() { Ascii = "Calibri" } // Font Calibri

             );

 

             //Imposta il testo

             Text text = new Text("Benvenuti nella creazione di documenti Word");

 

             //Prepara il documento

             Run run = new Run();

             run.Append(runProperties);

             run.Append(text);

 

             Paragraph paragraph = new Paragraph();

             paragraph.Append(paragraphProperties);

             paragraph.Append(run);

 

             body.Append(paragraph);

             mainPart.Document.Append(body);

             mainPart.Document.Save();

         }

 

     }

     catch (Exception ex)

     {

         MessageBox.Show(ex.Message);

     }

 

           

       

 }


Di seguito il frammento di codice che esegue la funzione precedente,  da richiamare nell'evento click del pulsante.

C#

private void BtnWord_Click(object sender, EventArgs e)

{

    try

    {

        string filePath2 = "C:\\Varie\\DocumentoWordOpenXML2.docx";

 

        CreaDocxConFormattazione(filePath2);

             

         

 

    }

    catch (Exception ex)

    {

        MessageBox.Show(ex.Message);

    }

}




Conclusioni

L'articolo ha fornito al lettore le basi per la gestione e creazione di un file Microsoft Word, il programma di video scrittura più utilizzato al mondo che offre ottime prestazioni. Tramite la classi presenti in Document OpenXML, possiamo gestire  con semplicità i file Word, e dotare i progetti per la gestione dei file docx, il tutto senza utilizzare componenti di terzi parti o particolari librerie. 

Nessun commento: