عرض جدول من مصدر البيانات
تسمح لك Aspose.PDF بإنشاء الجدول باستخدام مصدر البيانات من DataSet و Data Table والمصفوفات وكائنات IEnumerable باستخدام فئة PdfLightTable
تُستخدم فئة الجدول لمعالجة الجداول. تمنحنا هذه الفئة القدرة على إنشاء الجداول ووضعها في المستند، باستخدام الصفوف و الخلايا . لذلك، لإنشاء الجدول، تحتاج إلى إضافة العدد المطلوب من الصفوف وملئها بالعدد المناسب من الخلايا.
المثال التالي ينشئ الجدول 4x10.
.NET Core 3.1
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddTable ()
{
// The path to the documents directory
var dataDir = RunExamples . GetDataDir_AsposePdf_WorkingDocuments ();
// Create PDF document
using ( var document = new Aspose . Pdf . Document ())
{
// Add page
var page = document . Pages . Add ();
var table = new Aspose . Pdf . Table
{
// Set column auto widths of the table
ColumnWidths = "25% 25% 25% 25%" ,
// Set cell padding
DefaultCellPadding = new Aspose . Pdf . MarginInfo ( 10 , 5 , 10 , 5 ), // Left Bottom Right Top
// Set the table border color as Green
Border = new Aspose . Pdf . BorderInfo ( Aspose . Pdf . BorderSide . All , . 5f , Aspose . Pdf . Color . Green ),
// Set the border for table cells as Black
DefaultCellBorder = new Aspose . Pdf . BorderInfo ( Aspose . Pdf . BorderSide . All , . 2f , Aspose . Pdf . Color . Green ),
};
for ( var rowCount = 0 ; rowCount < 10 ; rowCount ++)
{
// Add row to table
var row = table . Rows . Add ();
// Add table cells
for ( int i = 0 ; i < 4 ; i ++)
{
row . Cells . Add ( $"Cell ({i + 1}, {rowCount + 1})" );
}
}
// Add table object to first page of input document
page . Paragraphs . Add ( table );
// Save PDF document
document . Save ( dataDir + "AddTable_out.pdf" );
}
}
.NET 8
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddTable ()
{
// The path to the documents directory
var dataDir = RunExamples . GetDataDir_AsposePdf_WorkingDocuments ();
// Create PDF document
using var document = new Aspose . Pdf . Document ();
// Add page
var page = document . Pages . Add ();
var table = new Aspose . Pdf . Table
{
// Set column auto widths of the table
ColumnWidths = "25% 25% 25% 25%" ,
// Set cell padding
DefaultCellPadding = new Aspose . Pdf . MarginInfo ( 10 , 5 , 10 , 5 ), // Left Bottom Right Top
// Set the table border color as Green
Border = new Aspose . Pdf . BorderInfo ( Aspose . Pdf . BorderSide . All , . 5f , Aspose . Pdf . Color . Green ),
// Set the border for table cells as Black
DefaultCellBorder = new Aspose . Pdf . BorderInfo ( Aspose . Pdf . BorderSide . All , . 2f , Aspose . Pdf . Color . Green ),
};
for ( var rowCount = 0 ; rowCount < 10 ; rowCount ++)
{
// Add row to table
var row = table . Rows . Add ();
// Add table cells
for ( int i = 0 ; i < 4 ; i ++)
{
row . Cells . Add ( $"Cell ({i + 1}, {rowCount + 1})" );
}
}
// Add table object to first page of input document
page . Paragraphs . Add ( table );
// Save PDF document
document . Save ( dataDir + "AddTable_out.pdf" );
}
عند تهيئة كائن الجدول، تم استخدام إعدادات الحد الأدنى:
تصدير البيانات من مصفوفة الكائنات
توفر فئة الجدول طرقًا للتفاعل مع مصادر بيانات ADO.NET - ImportDataTable و ImportDataView . تستورد الطريقة الأولى البيانات من DataTable، والثانية من DataView.
مع الأخذ في الاعتبار أن هذه الكائنات ليست مريحة جدًا للعمل في قالب MVC، سنقتصر على مثال موجز. في هذا المثال (السطر 50)، يتم استدعاء طريقة ImportDataTable وتستقبل كمعلمات مثيل DataTable وإعدادات إضافية مثل علامة الرأس والموقع الأولي (صفوف/أعمدة) لعرض البيانات.
.NET Core 3.1
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddTable ()
{
// Create PDF document
using ( var document = new Aspose . Pdf . Document
{
PageInfo = new Aspose . Pdf . PageInfo { Margin = new Aspose . Pdf . MarginInfo ( 28 , 28 , 28 , 42 ) }
})
{
var table = new Aspose . Pdf . Table
{
// Set column widths of the table
ColumnWidths = "25% 25% 25% 25%" ,
// Set cell padding
DefaultCellPadding = new Aspose . Pdf . MarginInfo ( 10 , 5 , 10 , 5 ), // Left Bottom Right Top
// Set the table border color as Green
Border = new Aspose . Pdf . BorderInfo ( Aspose . Pdf . BorderSide . All , . 5f , Aspose . Pdf . Color . Green ),
// Set the border for table cells as Black
DefaultCellBorder = new Aspose . Pdf . BorderInfo ( Aspose . Pdf . BorderSide . All , . 2f , Aspose . Pdf . Color . Green ),
};
var configuration = new ConfigurationBuilder ()
. SetBasePath ( Directory . GetCurrentDirectory ())
. AddJsonFile ( "config.json" , false )
. Build ();
var connectionString = configuration . GetSection ( "connectionString" ). Value ;
if ( string . IsNullOrEmpty ( connectionString ))
{
throw new ArgumentException ( "No connection string in config.json" );
}
var resultTable = new DataTable ();
using ( var conn = new SqlConnection ( connectionString ))
{
const string sql = "SELECT * FROM Tennats" ;
using ( var cmd = new SqlCommand ( sql , conn ))
{
using ( var adapter = new SqlDataAdapter ( cmd ))
{
adapter . Fill ( resultTable );
}
}
}
table . ImportDataTable ( resultTable , true , 1 , 1 );
// Add table object to first page of input document
document . Pages [ 1 ]. Paragraphs . Add ( table );
using ( var streamOut = new MemoryStream ())
{
// Save PDF document
document . Save ( streamOut );
return new FileContentResult ( streamOut . ToArray (), "application/pdf" )
{
FileDownloadName = "demotable2.pdf"
};
}
}
}
.NET 8
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddTable ()
{
// Create PDF document
using var document = new Aspose . Pdf . Document
{
PageInfo = new Aspose . Pdf . PageInfo { Margin = new Aspose . Pdf . MarginInfo ( 28 , 28 , 28 , 42 ) }
};
var table = new Aspose . Pdf . Table
{
// Set column widths of the table
ColumnWidths = "25% 25% 25% 25%" ,
// Set cell padding
DefaultCellPadding = new Aspose . Pdf . MarginInfo ( 10 , 5 , 10 , 5 ), // Left Bottom Right Top
// Set the table border color as Green
Border = new Aspose . Pdf . BorderInfo ( Aspose . Pdf . BorderSide . All , . 5f , Aspose . Pdf . Color . Green ),
// Set the border for table cells as Black
DefaultCellBorder = new Aspose . Pdf . BorderInfo ( Aspose . Pdf . BorderSide . All , . 2f , Aspose . Pdf . Color . Green ),
};
var configuration = new ConfigurationBuilder ()
. SetBasePath ( Directory . GetCurrentDirectory ())
. AddJsonFile ( "config.json" , false )
. Build ();
var connectionString = configuration . GetSection ( "connectionString" ). Value ;
if ( string . IsNullOrEmpty ( connectionString ))
{
throw new ArgumentException ( "No connection string in config.json" );
}
var resultTable = new DataTable ();
using var conn = new SqlConnection ( connectionString );
const string sql = "SELECT * FROM Tennats" ;
using var cmd = new SqlCommand ( sql , conn );
using var adapter = new SqlDataAdapter ( cmd );
adapter . Fill ( resultTable );
table . ImportDataTable ( resultTable , true , 1 , 1 );
// Add table object to first page of input document
document . Pages [ 1 ]. Paragraphs . Add ( table );
using var streamOut = new MemoryStream ();
// Save PDF document
document . Save ( streamOut );
return new FileContentResult ( streamOut . ToArray (), "application/pdf" )
{
PageInfo = new Aspose . Pdf . PageInfo { Margin = new Aspose . Pdf . MarginInfo ( 28 , 28 , 28 , 42 ) }
};
}