Як розробнику .NET вам дуже часто доводиться мати справу з об’єктами DataTable. Особливо, коли вам потрібно імпортувати або експортувати дані з баз даних або файлів XML/JSON. Під час програмного створення документів може знадобитися вставити дані з об’єктів DataTable безпосередньо в таблицю в документах Word. Для таких випадків дозвольте мені надати вам ідеальне та найпростіше рішення для вставлення даних із DataTable у документ Word на C#.
- Бібліотека C# для вставки DataTable у документ Word
- Кроки, щоб вставити DataTable у документ Word
- Вставте дані з DataTable у Word DOC
Бібліотека C# для вставлення DataTable у Word DOC – Безкоштовне завантаження
Щоб імпортувати дані з об’єктів DataTable у документи Word, ми використаємо Aspose.Words for .NET. Це багатофункціональна бібліотека, яка дозволяє створювати та обробляти документи MS Word. Ви можете завантажити його DLL або встановити його з NuGet.
Завантажити DLL
Встановити через NuGet
PM> Install-Package Aspose.Words
C# Вставлення DataTable у документ Word – кроки
Нижче наведено кроки, які ми виконаємо, щоб отримати дані з DataTable і вставити їх у документ Word.
- Завантажте дані з бази даних або файлу даних в об’єкт DataTable.
- Створіть новий документ Word і додайте до нього нову таблицю.
- Перегляньте рядки в DataTable та вставте кожен рядок у таблицю Word.
І це все.
Давайте тепер розглянемо, як перетворити ці кроки в код C# та імпортувати DataTable у документ Word.
Вставте дані з DataTable у Word DOC у C#
Спочатку ми напишемо метод, який приймає DocumentBuilder для створення документа, DataTable, що містить дані, і додатковий параметр, щоб увімкнути/вимкнути імпорт заголовків стовпців. Крім того, він повертає об’єкт Table.
Нижче наведено робочий процес цього методу.
- Створіть нову таблицю та отримайте її посилання в об’єкті Table.
- Вставте стовпці в таблицю відповідно до стовпців у DataTable.
- Установіть товщину шрифту, якщо перший рядок призначений для заголовків.
- Перегляньте кожен DataRow у колекції DataTable.Rows.
- Вставте нову клітинку для кожного значення та встановіть відповідний тип даних.
- Поверніть об’єкт Table.
Нижче наведено реалізацію методу для імпорту даних із DataTable у таблицю в документі Word на C#.
///<summary>
/// Імпортує вміст із зазначеної DataTable у новий об’єкт Aspose.Words Table.
/// Таблиця вставляється в поточну позицію конструктора документів із використанням поточного форматування конструктора, якщо таке визначено.
///</summary>
public static Table ImportTableFromDataTable(DocumentBuilder builder, DataTable dataTable, bool importColumnHeadings)
{
Table table = builder.StartTable();
// Перевірте, чи слід включити назви стовпців із джерела даних у рядок заголовка.
if (importColumnHeadings)
{
// Збережіть вихідні значення цих властивостей перед їх зміною.
bool boldValue = builder.Font.Bold;
ParagraphAlignment paragraphAlignmentValue = builder.ParagraphFormat.Alignment;
// Відформатуйте рядок заголовка з відповідними властивостями.
builder.Font.Bold = true;
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;
// Створіть новий рядок і вставте назву кожного стовпця в перший рядок таблиці.
foreach (DataColumn column in dataTable.Columns)
{
builder.InsertCell();
builder.Writeln(column.ColumnName);
}
builder.EndRow();
// Відновити вихідне форматування.
builder.Font.Bold = boldValue;
builder.ParagraphFormat.Alignment = paragraphAlignmentValue;
}
foreach (DataRow dataRow in dataTable.Rows)
{
foreach (object item in dataRow.ItemArray)
{
// Вставте нову клітинку для кожного об’єкта.
builder.InsertCell();
switch (item.GetType().Name)
{
case "DateTime":
// Визначте спеціальний формат для дат і часу.
DateTime dateTime = (DateTime)item;
builder.Write(dateTime.ToString("MMMM d, yyyy"));
break;
default:
// За замовчуванням будь-який інший елемент буде вставлено як текст.
builder.Write(item.ToString());
break;
}
}
// Після того, як ми вставимо всі дані з поточного запису, ми можемо завершити рядок таблиці.
builder.EndRow();
}
// Ми закінчили вставляти всі дані з DataTable, ми можемо завершити таблицю.
builder.EndTable();
return table;
}
Тепер настав час викликати цей метод і вставити DataTable у документ Word.
Імпорт DataTable у документ Word на C#
Нижче наведено кроки для імпорту даних із DataTable у документ Word на C#.
- Створіть новий документ Word (або завантажте існуючий) за допомогою класу Document.
- Читання даних із бази даних/файлу в об’єкт DataTable.
- Викличте метод, який ми написали в попередньому розділі, і отримайте повернуту таблицю.
- Задати форматування таблиці.
- Збережіть файл Word за допомогою методу Document.Save().
У наведеному нижче прикладі коду показано, як вставити DataTable у документ Word на C#.
// Створіть новий документ.
Document doc = new Document();
// Ми можемо розташувати таблицю, куди ми хочемо вставити, а також вказати додаткове форматування
// також наноситься на стіл.
DocumentBuilder builder = new DocumentBuilder(doc);
// Ми хочемо повернути альбомну сторінку, оскільки ми очікуємо широку таблицю.
doc.FirstSection.PageSetup.Orientation = Orientation.Landscape;
DataSet ds = new DataSet();
ds.ReadXml("Employees.xml");
// Отримати дані з нашого джерела даних, яке зберігається як DataTable.
DataTable dataTable = ds.Tables[0];
// Побудуйте таблицю в документі з даних, що містяться в DataTable.
Table table = ImportTableFromDataTable(builder, dataTable, true);
// Ми можемо застосувати стиль таблиці як дуже швидкий спосіб застосувати форматування до всієї таблиці.
table.StyleIdentifier = StyleIdentifier.MediumList2Accent1;
table.StyleOptions = TableStyleOptions.FirstRow | TableStyleOptions.RowBands | TableStyleOptions.LastColumn;
// Для нашої таблиці ми хочемо видалити заголовок стовпця зображення.
table.FirstRow.LastCell.RemoveAllChildren();
// Збережіть вихідний документ.
doc.Save("Table.docx");
C# DataTable to Word Importer Library – отримайте безкоштовну ліцензію
Ви можете отримати безкоштовну тимчасову ліцензію на використання Aspose.Words for .NET без оціночних обмежень.
Висновок
У цій статті ви дізналися, як вставити дані з DataTable у документ Word на C#. Ви можете легко інтегрувати зразок коду у свої програми та імпортувати дані безпосередньо з бази даних/XML/JSON у документи Word за допомогою DataTable.
Бібліотека .NET Word – докладніше
Ви можете відвідати документацію Aspose.Words for .NET, щоб дізнатися більше про бібліотеку. Якщо у вас виникнуть запитання, не соромтеся повідомити нас через наш форум.