Jako programista .NET bardzo często masz do czynienia z obiektami DataTable. Szczególnie wtedy, gdy trzeba zaimportować lub wyeksportować dane z baz danych lub plików XML/JSON. Podczas programistycznego generowania dokumentów może być konieczne wstawienie danych z obiektów DataTable bezpośrednio do tabeli w dokumentach programu Word. W takich przypadkach podam idealne i najłatwiejsze rozwiązanie do wstawiania danych z DataTable do dokumentu Worda w C#.
- Biblioteka C# do wstawiania tabeli danych w dokumencie programu Word
- Kroki, aby wstawić tabelę danych do dokumentu programu Word
- Wstaw dane z DataTable do Word DOC
Biblioteka C# do wstawiania tabeli danych w programie Word DOC — bezpłatne pobieranie
Aby zaimportować dane z obiektów DataTable do dokumentów Word, użyjemy Aspose.Words for .NET. Jest to bogata w funkcje biblioteka, która pozwala tworzyć i przetwarzać dokumenty MS Word. Możesz pobrać jego bibliotekę DLL lub zainstalować ją z NuGet.
Pobierz bibliotekę DLL
Zainstaluj przez NuGet
PM> Install-Package Aspose.Words
C# Wstaw tabelę danych do dokumentu programu Word — kroki
Poniżej przedstawiono kroki, które wykonamy, aby pobrać dane z DataTable i wstawić je do dokumentu Word.
- Załaduj dane z bazy danych lub pliku danych do obiektu DataTable.
- Utwórz nowy dokument programu Word i dodaj do niego nową tabelę.
- Przejrzyj wiersze w DataTable i wstaw każdy wiersz do tabeli programu Word.
I to wszystko.
Przyjrzyjmy się teraz, jak przekształcić te kroki w kod C# i zaimportować DataTable do dokumentu programu Word.
Wstaw dane z DataTable do Word DOC w C#
Najpierw napiszemy metodę, która zaakceptuje DocumentBuilder do zbudowania dokumentu, DataTable posiadającą dane oraz dodatkowy parametr umożliwiający włączenie/wyłączenie importowania nagłówków kolumn. Ponadto zwraca obiekt Table.
Poniżej przedstawiono przepływ pracy tej metody.
- Utwórz nową tabelę i pobierz jej odwołanie do obiektu Table.
- Wstaw kolumny do tabeli zgodnie z kolumnami w DataTable.
- Ustaw grubość czcionki, jeśli pierwszy wiersz jest przeznaczony na nagłówki.
- Przejdź przez każdy DataRow w kolekcji DataTable.Rows.
- Wstaw nową komórkę dla każdej wartości i odpowiednio ustaw typ danych.
- Zwróć obiekt tabeli.
Poniżej przedstawiono implementację metody importowania danych z tabeli DataTable do tabeli w dokumencie programu Word w języku C#.
///<summary>
/// Importuje zawartość z określonej tabeli DataTable do nowego obiektu Aspose.Words Table.
/// Tabela jest wstawiana w bieżącej pozycji konstruktora dokumentów i przy użyciu formatowania bieżącego konstruktora, jeśli jest zdefiniowane.
///</summary>
public static Table ImportTableFromDataTable(DocumentBuilder builder, DataTable dataTable, bool importColumnHeadings)
{
Table table = builder.StartTable();
// Sprawdź, czy nazwy kolumn ze źródła danych mają być zawarte w wierszu nagłówka.
if (importColumnHeadings)
{
// Zapisz oryginalne wartości tych właściwości przed ich zmianą.
bool boldValue = builder.Font.Bold;
ParagraphAlignment paragraphAlignmentValue = builder.ParagraphFormat.Alignment;
// Sformatuj wiersz nagłówka z odpowiednimi właściwościami.
builder.Font.Bold = true;
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;
// Utwórz nowy wiersz i wstaw nazwę każdej kolumny do pierwszego wiersza tabeli.
foreach (DataColumn column in dataTable.Columns)
{
builder.InsertCell();
builder.Writeln(column.ColumnName);
}
builder.EndRow();
// Przywróć oryginalne formatowanie.
builder.Font.Bold = boldValue;
builder.ParagraphFormat.Alignment = paragraphAlignmentValue;
}
foreach (DataRow dataRow in dataTable.Rows)
{
foreach (object item in dataRow.ItemArray)
{
// Wstaw nową komórkę dla każdego obiektu.
builder.InsertCell();
switch (item.GetType().Name)
{
case "DateTime":
// Zdefiniuj niestandardowy format dat i godzin.
DateTime dateTime = (DateTime)item;
builder.Write(dateTime.ToString("MMMM d, yyyy"));
break;
default:
// Domyślnie każdy inny element zostanie wstawiony jako tekst.
builder.Write(item.ToString());
break;
}
}
// Po wstawieniu wszystkich danych z bieżącego rekordu możemy zakończyć wiersz tabeli.
builder.EndRow();
}
// Zakończyliśmy wstawianie wszystkich danych z DataTable, możemy zakończyć tabelę.
builder.EndTable();
return table;
}
Teraz nadszedł czas, aby wywołać tę metodę i wstawić DataTable do dokumentu programu Word.
Importuj DataTable do dokumentu Word w C#
Poniżej przedstawiono kroki importowania danych z tabeli DataTable do dokumentu programu Word w języku C#.
- Utwórz nowy dokument programu Word (lub załaduj istniejący) przy użyciu klasy Document.
- Wczytaj dane z bazy danych/pliku do obiektu DataTable.
- Wywołaj metodę, którą napisaliśmy w poprzedniej sekcji i uzyskaj zwróconą tabelę.
- Ustaw formatowanie tabeli.
- Zapisz plik Worda metodą Document.Save().
Poniższy przykładowy kod pokazuje, jak wstawić DataTable do dokumentu programu Word w języku C#.
// Utwórz nowy dokument.
Document doc = new Document();
// Możemy ustawić miejsce, w którym chcemy wstawić tabelę, a także określić dodatkowe formatowanie
// również na stole.
DocumentBuilder builder = new DocumentBuilder(doc);
// Chcemy obrócić krajobraz strony, ponieważ oczekujemy szerokiego stołu.
doc.FirstSection.PageSetup.Orientation = Orientation.Landscape;
DataSet ds = new DataSet();
ds.ReadXml("Employees.xml");
// Pobierz dane z naszego źródła danych, które jest przechowywane jako DataTable.
DataTable dataTable = ds.Tables[0];
// Zbuduj tabelę w dokumencie z danych zawartych w DataTable.
Table table = ImportTableFromDataTable(builder, dataTable, true);
// Możemy zastosować styl tabeli jako bardzo szybki sposób na zastosowanie formatowania do całej tabeli.
table.StyleIdentifier = StyleIdentifier.MediumList2Accent1;
table.StyleOptions = TableStyleOptions.FirstRow | TableStyleOptions.RowBands | TableStyleOptions.LastColumn;
// W naszej tabeli chcemy usunąć nagłówek kolumny obrazu.
table.FirstRow.LastCell.RemoveAllChildren();
// Zapisz dokument wyjściowy.
doc.Save("Table.docx");
C# DataTable to Word Importer Library — Uzyskaj bezpłatną licencję
Możesz uzyskać darmową tymczasową licencję, aby używać Aspose.Words for .NET bez ograniczeń ewaluacyjnych.
Wniosek
W tym artykule nauczyłeś się wstawiać dane z tabeli DataTable do dokumentu programu Word w języku C#. Możesz łatwo zintegrować przykładowy kod ze swoimi aplikacjami i importować dane bezpośrednio z bazy danych/XML/JSON do dokumentów Word za pomocą DataTable.
Biblioteka .NET Word — więcej informacji
Możesz odwiedzić dokumentację Aspose.Words for .NET, aby dowiedzieć się więcej o bibliotece. Jeśli masz jakieś pytania, daj nam znać za pośrednictwem naszego forum.