عرض جدول من مصدر البيانات
تسمح لك Aspose.PDF بإنشاء الجدول باستخدام مصدر البيانات من DataSet و Data Table والمصفوفات وكائنات IEnumerable باستخدام فئة PdfLightTable
تُستخدم فئة الجدول لمعالجة الجداول. تمنحنا هذه الفئة القدرة على إنشاء الجداول ووضعها في المستند، باستخدام الصفوف و الخلايا . لذلك، لإنشاء الجدول، تحتاج إلى إضافة العدد المطلوب من الصفوف وملئها بالعدد المناسب من الخلايا.
المثال التالي ينشئ الجدول 4x10.
.NET Core 3.1
Copy
private static void AddTable ( )
{
var dataDir = RunExamples . GetDataDir_AsposePdf_WorkingDocuments ();
using ( var document = new Aspose . Pdf . Document ())
{
var page = document . Pages . Add ();
var table = new Aspose . Pdf . Table
{
ColumnWidths = "25% 25% 25% 25%" ,
DefaultCellPadding = new Aspose . Pdf . MarginInfo ( 10 , 5 , 10 , 5 ),
Border = new Aspose . Pdf . BorderInfo ( Aspose . Pdf . BorderSide . All , . 5 f, Aspose . Pdf . Color . Green ),
DefaultCellBorder = new Aspose . Pdf . BorderInfo ( Aspose . Pdf . BorderSide . All , . 2 f, Aspose . Pdf . Color . Green ),
};
for ( var rowCount = 0 ; rowCount < 10 ; rowCount ++)
{
var row = table . Rows . Add ();
for ( int i = 0 ; i < 4 ; i ++)
{
row . Cells . Add ( $"Cell ({i + 1 } , {rowCount + 1 } )" );
}
}
page . Paragraphs . Add ( table );
document . Save ( dataDir + "AddTable_out.pdf" );
}
}
.NET 8
Copy
private static void AddTable ( )
{
var dataDir = RunExamples . GetDataDir_AsposePdf_WorkingDocuments ();
using var document = new Aspose . Pdf . Document ();
var page = document . Pages . Add ();
var table = new Aspose . Pdf . Table
{
ColumnWidths = "25% 25% 25% 25%" ,
DefaultCellPadding = new Aspose . Pdf . MarginInfo ( 10 , 5 , 10 , 5 ),
Border = new Aspose . Pdf . BorderInfo ( Aspose . Pdf . BorderSide . All , . 5 f, Aspose . Pdf . Color . Green ),
DefaultCellBorder = new Aspose . Pdf . BorderInfo ( Aspose . Pdf . BorderSide . All , . 2 f, Aspose . Pdf . Color . Green ),
};
for ( var rowCount = 0 ; rowCount < 10 ; rowCount ++)
{
var row = table . Rows . Add ();
for ( int i = 0 ; i < 4 ; i ++)
{
row . Cells . Add ( $"Cell ({i + 1 } , {rowCount + 1 } )" );
}
}
page . Paragraphs . Add ( table );
document . Save ( dataDir + "AddTable_out.pdf" );
}
عند تهيئة كائن الجدول، تم استخدام إعدادات الحد الأدنى:
تصدير البيانات من مصفوفة الكائنات
توفر فئة الجدول طرقًا للتفاعل مع مصادر بيانات ADO.NET - ImportDataTable و ImportDataView . تستورد الطريقة الأولى البيانات من DataTable، والثانية من DataView.
مع الأخذ في الاعتبار أن هذه الكائنات ليست مريحة جدًا للعمل في قالب MVC، سنقتصر على مثال موجز. في هذا المثال (السطر 50)، يتم استدعاء طريقة ImportDataTable وتستقبل كمعلمات مثيل DataTable وإعدادات إضافية مثل علامة الرأس والموقع الأولي (صفوف/أعمدة) لعرض البيانات.
.NET Core 3.1
Copy
private static void AddTable ( )
{
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
{
ColumnWidths = "25% 25% 25% 25%" ,
DefaultCellPadding = new Aspose . Pdf . MarginInfo ( 10 , 5 , 10 , 5 ),
Border = new Aspose . Pdf . BorderInfo ( Aspose . Pdf . BorderSide . All , . 5 f, Aspose . Pdf . Color . Green ),
DefaultCellBorder = new Aspose . Pdf . BorderInfo ( Aspose . Pdf . BorderSide . All , . 2 f, 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 );
document . Pages [ 1 ]. Paragraphs . Add ( table );
using ( var streamOut = new MemoryStream ())
{
document . Save ( streamOut );
return new FileContentResult ( streamOut . ToArray (), "application/pdf" )
{
FileDownloadName = "demotable2.pdf"
};
}
}
}
.NET 8
Copy
private static void AddTable ( )
{
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
{
ColumnWidths = "25% 25% 25% 25%" ,
DefaultCellPadding = new Aspose . Pdf . MarginInfo ( 10 , 5 , 10 , 5 ),
Border = new Aspose . Pdf . BorderInfo ( Aspose . Pdf . BorderSide . All , . 5 f, Aspose . Pdf . Color . Green ),
DefaultCellBorder = new Aspose . Pdf . BorderInfo ( Aspose . Pdf . BorderSide . All , . 2 f, 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 );
document . Pages [ 1 ]. Paragraphs . Add ( table );
using var streamOut = new MemoryStream ();
document . Save ( streamOut );
return new FileContentResult ( streamOut . ToArray (), "application/pdf" )
{
PageInfo = new Aspose . Pdf . PageInfo { Margin = new Aspose . Pdf . MarginInfo ( 28 , 28 , 28 , 42 ) }
};
}