לבנות שולחן מ DataTable

Contents
[ ]

לעתים קרובות היישום שלך ימשוך נתונים ממסד נתונים ולאחסן אותו בצורה של DataTable. אתה יכול בקלות להוסיף נתונים אלה לתוך המסמך שלך כשולחן חדש וליישם במהירות פורמט לכל השולחן.

שימוש Aspose.Words, אתה יכול בקלות לשחזר נתונים ממסד נתונים ולאחסן אותו כשולחן:

1.1 1. ליצור חדש DocumentBuilder אובייקט על Document. 1.1 1. התחל שולחן חדש באמצעות DocumentBuilder. 1.1 1. אם אנו רוצים להוסיף את השמות של כל אחד מהעמודות שלנו DataTable כשורה אחורית, הוא מחלחל דרך כל עמודה נתונים וכותב את שמות העמודה לשורה בטבלה. 1.1 1. דרך כל אחד DataRow בתוך DataTable: 1.לעבור כל אובייקט ב DataRow. 1 הכנס את האובייקט אל המסמך באמצעות DocumentBuilder. השיטה המשמשת תלויה בסוג האובייקט מוכנס e.g DocumentBuilder.Writeln טקסט ו DocumentBuilder.InsertImage עבור מערך פסטה המייצג תמונה. 1 בסוף העיבוד של DataRow גם לסיים את השורה שנוצרת על ידי DocumentBuilder באמצעות DocumentBuilder.EndRow. 1.1 1. פעם כל שורות מן DataTable מעובד לסיים את השולחן באמצעות קריאה DocumentBuilder.EndTable. 1.1 1. לבסוף, אנו יכולים להגדיר את סגנון השולחן הרצוי באמצעות אחד מתכונות השולחן המתאימות כגון Table.StyleIdentifier ליישם באופן אוטומטי פורמט לכל השולחן.

The The The ImportTableFromDataTable השיטה מקבלת DocumentBuilder האובייקט, DataTable המכיל את הנתונים ואת הדגל אשר מפרט אם העמודה פונה מהעמודה DataTable הכלולים בחלק העליון של השולחן. שיטה זו בונה טבלה מפרמטרים אלה באמצעות המיקום הנוכחי של בונה ותבנית. מספק שיטה לייבא נתונים מן DataTable הכנס אותו לשולחן חדש באמצעות מסמך בונה.

הנתונים הבאים שלנו DataTable נעשה שימוש בדוגמה זו:

how-to-build-a-table-from-a-datatable-aspose-words-net

דוגמה לקוד הבא מראה כיצד לבצע את האלגוריתם לעיל Aspose.Words:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
/// <summary>
/// Imports the content from the specified DataTable into a new Aspose.Words Table object.
/// The table is inserted at the document builder's current position and using the current builder's formatting if any is defined.
/// </summary>
public Table ImportTableFromDataTable(DocumentBuilder builder, DataTable dataTable,
bool importColumnHeadings)
{
Table table = builder.StartTable();
// Check if the columns' names from the data source are to be included in a header row.
if (importColumnHeadings)
{
// Store the original values of these properties before changing them.
bool boldValue = builder.Font.Bold;
ParagraphAlignment paragraphAlignmentValue = builder.ParagraphFormat.Alignment;
// Format the heading row with the appropriate properties.
builder.Font.Bold = true;
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;
// Create a new row and insert the name of each column into the first row of the table.
foreach (DataColumn column in dataTable.Columns)
{
builder.InsertCell();
builder.Writeln(column.ColumnName);
}
builder.EndRow();
// Restore the original formatting.
builder.Font.Bold = boldValue;
builder.ParagraphFormat.Alignment = paragraphAlignmentValue;
}
foreach (DataRow dataRow in dataTable.Rows)
{
foreach (object item in dataRow.ItemArray)
{
// Insert a new cell for each object.
builder.InsertCell();
switch (item.GetType().Name)
{
case "DateTime":
// Define a custom format for dates and times.
DateTime dateTime = (DateTime) item;
builder.Write(dateTime.ToString("MMMM d, yyyy"));
break;
default:
// By default any other item will be inserted as text.
builder.Write(item.ToString());
break;
}
}
// After we insert all the data from the current record, we can end the table row.
builder.EndRow();
}
// We have finished inserting all the data from the DataTable, we can end the table.
builder.EndTable();
return table;
}

את השיטה ניתן לקרוא בקלות DocumentBuilder ונתונים.

הדוגמה הבאה של הקוד מראה כיצד לייבא את הנתונים מ- DataTable הכנס אותו לשולחן חדש במסמך:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
Document doc = new Document();
// We can position where we want the table to be inserted and specify any extra formatting to the table.
DocumentBuilder builder = new DocumentBuilder(doc);
// We want to rotate the page landscape as we expect a wide table.
doc.FirstSection.PageSetup.Orientation = Orientation.Landscape;
DataSet ds = new DataSet();
ds.ReadXml(MyDir + "List of people.xml");
// Retrieve the data from our data source, which is stored as a DataTable.
DataTable dataTable = ds.Tables[0];
// Build a table in the document from the data contained in the DataTable.
Table table = ImportTableFromDataTable(builder, dataTable, true);
// We can apply a table style as a very quick way to apply formatting to the entire table.
table.StyleIdentifier = StyleIdentifier.MediumList2Accent1;
table.StyleOptions = TableStyleOptions.FirstRow | TableStyleOptions.RowBands | TableStyleOptions.LastColumn;
// For our table, we want to remove the heading for the image column.
table.FirstRow.LastCell.RemoveAllChildren();
doc.Save(ArtifactsDir + "WorkingWithTables.BuildTableFromDataTable.docx");