Come sviluppatore .NET, devi gestire molto spesso gli oggetti DataTable. Soprattutto quando è necessario importare o esportare dati da database o file XML/JSON. Durante la generazione di documenti a livello di codice, potrebbe essere necessario inserire dati dagli oggetti DataTable direttamente nella tabella nei documenti di Word. Per questi casi, lascia che ti dia la soluzione perfetta e più semplice per inserire dati da DataTable in un documento Word in C#.
- Libreria C# per inserire DataTable nel documento di Word
- Passaggi per inserire DataTable nel documento di Word
- Inserisci i dati da DataTable in Word DOC
Libreria C# per inserire DataTable in Word DOC - Download gratuito
Per importare dati da oggetti DataTable in documenti Word, useremo Aspose.Words for .NET. È una libreria ricca di funzionalità che ti consente di creare ed elaborare documenti MS Word. Puoi scaricare la sua DLL o installarla da NuGet.
Scarica DLL
Installa tramite NuGet
PM> Install-Package Aspose.Words
C# Inserisci DataTable nel documento Word - Passaggi
Di seguito sono riportati i passaggi che seguiremo per recuperare i dati da un DataTable e inserirli nel documento di Word.
- Carica i dati da un database o un file di dati nell’oggetto DataTable.
- Crea un nuovo documento Word e aggiungi una nuova tabella.
- Passa attraverso le righe nel DataTable e inserisci ogni riga nella tabella di Word.
E questo è tutto.
Diamo ora un’occhiata a come trasformare questi passaggi nel codice C# e importare un DataTable in un documento Word.
Inserisci dati da DataTable in Word DOC in C
Innanzitutto, scriveremo un metodo che accetti DocumentBuilder per creare il documento, DataTable con dati e un parametro aggiuntivo per abilitare/disabilitare l’importazione delle intestazioni di colonna. Inoltre, restituisce l’oggetto Table.
Di seguito è riportato il flusso di lavoro di questo metodo.
- Crea una nuova tabella e ottieni il suo riferimento in un oggetto Table.
- Inserisci le colonne nella tabella in base alle colonne in DataTable.
- Imposta lo spessore del carattere se la prima riga è per le intestazioni.
- Passa attraverso ogni DataRow nella raccolta DataTable.Rows.
- Inserisci una nuova cella per ogni valore e imposta il tipo di dati di conseguenza.
- Restituisce l’oggetto Table.
Di seguito è riportata l’implementazione del metodo per l’importazione di dati da un DataTable in una tabella nel documento di Word in C#.
///<summary>
/// Importa il contenuto dal DataTable specificato in un nuovo oggetto Aspose.Words Table.
/// La tabella viene inserita nella posizione corrente del generatore di documenti e utilizza la formattazione del generatore corrente, se definita.
///</summary>
public static Table ImportTableFromDataTable(DocumentBuilder builder, DataTable dataTable, bool importColumnHeadings)
{
Table table = builder.StartTable();
// Controlla se i nomi delle colonne dall'origine dati devono essere inclusi in una riga di intestazione.
if (importColumnHeadings)
{
// Memorizza i valori originali di queste proprietà prima di modificarle.
bool boldValue = builder.Font.Bold;
ParagraphAlignment paragraphAlignmentValue = builder.ParagraphFormat.Alignment;
// Formatta la riga di intestazione con le proprietà appropriate.
builder.Font.Bold = true;
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;
// Crea una nuova riga e inserisci il nome di ogni colonna nella prima riga della tabella.
foreach (DataColumn column in dataTable.Columns)
{
builder.InsertCell();
builder.Writeln(column.ColumnName);
}
builder.EndRow();
// Ripristina la formattazione originale.
builder.Font.Bold = boldValue;
builder.ParagraphFormat.Alignment = paragraphAlignmentValue;
}
foreach (DataRow dataRow in dataTable.Rows)
{
foreach (object item in dataRow.ItemArray)
{
// Inserisci una nuova cella per ogni oggetto.
builder.InsertCell();
switch (item.GetType().Name)
{
case "DateTime":
// Definire un formato personalizzato per date e orari.
DateTime dateTime = (DateTime)item;
builder.Write(dateTime.ToString("MMMM d, yyyy"));
break;
default:
// Per impostazione predefinita qualsiasi altro elemento verrà inserito come testo.
builder.Write(item.ToString());
break;
}
}
// Dopo aver inserito tutti i dati dal record corrente, possiamo terminare la riga della tabella.
builder.EndRow();
}
// Abbiamo finito di inserire tutti i dati dal DataTable, possiamo terminare la tabella.
builder.EndTable();
return table;
}
Ora è il momento di chiamare questo metodo e inserire un DataTable in un documento di Word.
Importa DataTable in un documento Word in C#
Di seguito sono riportati i passaggi per importare i dati dal DataTable in un documento di Word in C#.
- Crea un nuovo documento Word (o caricane uno esistente) utilizzando la classe Document.
- Legge i dati dal database/file nell’oggetto DataTable.
- Chiama il metodo che abbiamo scritto nella sezione precedente e ottieni la tabella restituita.
- Impostare la formattazione della tabella.
- Salva il file Word usando il metodo Document.Save().
L’esempio di codice seguente mostra come inserire un oggetto DataTable in un documento di Word in C#.
// Crea un nuovo documento.
Document doc = new Document();
// Possiamo posizionare dove vogliamo che la tabella venga inserita e anche specificare eventuali formattazioni extra
// applicato anche sul tavolo.
DocumentBuilder builder = new DocumentBuilder(doc);
// Vogliamo ruotare il panorama della pagina poiché ci aspettiamo una tabella ampia.
doc.FirstSection.PageSetup.Orientation = Orientation.Landscape;
DataSet ds = new DataSet();
ds.ReadXml("Employees.xml");
// Recupera i dati dalla nostra origine dati che è archiviata come DataTable.
DataTable dataTable = ds.Tables[0];
// Crea una tabella nel documento dai dati contenuti nel DataTable.
Table table = ImportTableFromDataTable(builder, dataTable, true);
// Possiamo applicare uno stile di tabella come un modo molto rapido per applicare la formattazione all'intera tabella.
table.StyleIdentifier = StyleIdentifier.MediumList2Accent1;
table.StyleOptions = TableStyleOptions.FirstRow | TableStyleOptions.RowBands | TableStyleOptions.LastColumn;
// Per la nostra tabella vogliamo rimuovere l'intestazione per la colonna dell'immagine.
table.FirstRow.LastCell.RemoveAllChildren();
// Salva il documento di output.
doc.Save("Table.docx");
C# DataTable to Word Importer Library - Ottieni una licenza gratuita
Puoi ottenere una licenza temporanea gratuita per utilizzare Aspose.Words for .NET senza limiti di valutazione.
Conclusione
In questo articolo si è appreso come inserire dati da un DataTable in un documento di Word in C#. Puoi facilmente integrare l’esempio di codice nelle tue applicazioni e importare i dati direttamente da database/XML/JSON in documenti Word utilizzando DataTable.
Libreria di parole .NET - Ulteriori informazioni
Puoi visitare la documentazione di Aspose.Words for .NET per saperne di più sulla libreria. In caso di domande, non esitare a farcelo sapere tramite il nostro forum.