استيراد تصدير البيانات من المستند

استيراد البيانات من المستند

البيانات هي مجموعة من الحقائق الخام ونقوم بإنشاء مستند جداول بيانات أو تقارير لعرض هذه الحقائق الخام بطريقة أكثر معنى. عادةً ما نضيف البيانات إلى جداول بيانات بأنفسنا ولكن في بعض الأحيان، نحتاج إلى إعادة استخدام مصادر البيانات الموجودة وهنا يأتي دور استيراد البيانات إلى جداول البيانات من مصادر بيانات مختلفة. في هذا الموضوع، سنناقش بعض التقنيات لاستيراد البيانات إلى أوراق العمل من مصادر بيانات مختلفة.

استيراد البيانات باستخدام Aspose.Cells

عند استخدام Aspose.Cells لفتح ملف Excel، يتم استيراد جميع البيانات في الملف تلقائيًا ولكن Aspose.Cells يدعم أيضًا استيراد البيانات من مصادر البيانات المختلفة. يُذكر بعض هذه المصادر أدناه:

  • Array
  • ArrayList
  • DataTable
  • DataColumn
  • DataView
  • DataGrid
  • DataReader
  • GridView

Aspose.Cells توفر فئة، Workbook التي تمثل ملف Excel. تحتوي فئة Workbook على مجموعة Worksheets تسمح بالوصول إلى كل ورقة عمل في ملف Excel. تُمثل ورقة العمل بواسطة فئة Worksheet. توفر فئة Worksheet مجموعة Cells.

توفر مجموعة Cells طرقًا مفيدة جدًا لاستيراد البيانات من مصادر بيانات مختلفة.

استيراد من مصفوفة

يمكن للمطورين استيراد البيانات من مصفوفة إلى ورقة العمل الخاصة بهم من خلال استدعاء الأسلوب ImportArray من مجموعة الخلايا. هناك العديد من الإصدارات المتعددة لأسلوب ImportArray ولكن الإصدار النموذجي يأخذ المعلمات التالية:

  • مصفوفة, يمثل كائن المصفوفة التي تحتاج إلى استيراد محتوياتها
  • رقم الصف, يمثل رقم الصف لأول خلية حيث سيتم استيراد البيانات
  • رقم العمود, يمثل رقم العمود لأول خلية حيث سيتم استيراد البيانات
  • هل هو عمودي, قيمة منطقية تحدد استيراد البيانات عموديا أم أفقيا
//Instantiating a Workbook object

Workbook workbook = new Workbook();

//Adding a new worksheet to the Workbook object

int i = workbook.Worksheets.Add();

//Obtaining the reference of the newly added worksheet by passing its sheet index

Worksheet worksheet = workbook.Worksheets[i];

//Creating an array containing names as string values

string[] names = new string[] { "laurence chen", "roman korchagin", "kyle huang" };

//Importing the array of names to 1st row and first column vertically

worksheet.Cells.ImportArray(names, 0, 0, true);

//Saving the Excel file

workbook.Save(MyDir+"DataImport from Array.xls");

استيراد من ArrayList

يمكن للمطورين استيراد البيانات من ArrayList إلى ورقة العمل الخاصة بهم من خلال استدعاء الأسلوب ImportArrayList من مجموعة الخلايا. يأخذ أسلوب ImportArray المعلمات التالية: ArrayList , يمثل كائن ArrayList الذي تحتاج إلى استيراد محتوياته

  • رقم الصف , يمثل رقم الصف لأول خلية حيث سيتم استيراد البيانات
  • رقم العمود , يمثل رقم العمود لأول خلية حيث سيتم استيراد البيانات
  • هل هو عمودي , قيمة منطقية تحدد استيراد البيانات عموديا أم أفقيا
//Instantiating a Workbook object

Workbook workbook = new Workbook();

//Adding a new worksheet to the Workbook object

int i = workbook.Worksheets.Add();

//Obtaining the reference of the newly added worksheet by passing its sheet index

Worksheet worksheet = workbook.Worksheets[i];

//Instantiating an ArrayList object

ArrayList list = new ArrayList();

//Add few names to the list as string values

list.Add("laurence chen");

list.Add("roman korchagin");

list.Add("kyle huang");

list.Add("tommy wang");

//Importing the contents of ArrayList to 1st row and first column vertically

worksheet.Cells.ImportArrayList(list, 0, 0, true);

//Saving the Excel file

workbook.Save(MyDir + "DataImport from Array List.xls");

استيراد من الكائنات المخصصة

يمكن للمطورين استيراد البيانات من مجموعة من الكائنات إلى ورقة العمل باستخدام ImportCustomObjects. يمكنك تقديم قائمة من الأعمدة/الخصائص للأسلوب لعرض القائمة المرغوبة من الكائنات الخاصة بك.

//Instantiate a new Workbook

Workbook book = new Workbook();

//Clear all the worksheets

book.Worksheets.Clear();

//Add a new Sheet "Data";

Worksheet sheet = book.Worksheets.Add("Data");

//Define List

List<WeeklyItem> list = new List<WeeklyItem>();

//Add data to the list of objects

list.Add(new WeeklyItem() { AtYarnStage = 1, InWIPStage = 2, Payment = 3, Shipment = 4, Shipment2 = 5 });

list.Add(new WeeklyItem() { AtYarnStage = 5, InWIPStage = 9, Payment = 7, Shipment = 2, Shipment2 = 5 });

list.Add(new WeeklyItem() { AtYarnStage = 7, InWIPStage = 3, Payment = 3, Shipment = 8, Shipment2 = 3 });

//We pick a few columns not all to import to the worksheet

sheet.Cells.ImportCustomObjects((System.Collections.ICollection)list,

new string[] { "Date", "InWIPStage", "Shipment", "Payment" },

true,

0,

0,

list.Count,

true,

"dd/mm/yyyy",

false);

//Auto-fit all the columns

book.Worksheets[0].AutoFitColumns();

//Save the Excel file

book.Save(MyDir+"ImportedCustomObjects.xls");

استيراد من DataTable

يمكن للمطورين استيراد البيانات من DataTable إلى ورقة العمل الخاصة بهم من خلال استدعاء الأسلوب ImportDataTable من مجموعة الخلايا. هناك العديد من الإصدارات المتعددة لأسلوب ImportDataTable ولكن الإصدار النموذجي يأخذ المعلمات التالية:DataTable , يمثل كائن DataTable التي تحتاج إلى استيراد محتوياتها

  • هل يتم عرض اسم الحقل, يحدد ما إذا كانت أسماء أعمدة DataTable يجب استيرادها إلى ورقة العمل كصف أول أم لا
  • الخلية البدء , يمثل اسم الخلية البداية (مثل “A1”) من حيث يتم استيراد محتويات DataTable
//Instantiating a Workbook object

Workbook workbook = new Workbook();

//Adding a new worksheet to the Workbook object

int i = workbook.Worksheets.Add();

//Obtaining the reference of the newly added worksheet by passing its sheet index

Worksheet worksheet = workbook.Worksheets[i];

//Instantiating a "Products" DataTable object

DataTable dataTable = new DataTable("Products");

//Adding columns to the DataTable object

dataTable.Columns.Add("Product ID", typeof(Int32));

dataTable.Columns.Add("Product Name", typeof(string));

dataTable.Columns.Add("Units In Stock", typeof(Int32));

//Creating an empty row in the DataTable object

DataRow dr = dataTable.NewRow();

//Adding data to the row

dr[0] = 1;

dr[1] = "Aniseed Syrup";

dr[2] = 15;

//Adding filled row to the DataTable object

dataTable.Rows.Add(dr);

//Creating another empty row in the DataTable object

dr = dataTable.NewRow();

//Adding data to the row

dr[0] = 2;

dr[1] = "Boston Crab Meat";

dr[2] = 123;

//Adding filled row to the DataTable object

dataTable.Rows.Add(dr);

//Importing the contents of DataTable to the worksheet starting from "A1" cell,

//where true specifies that the column names of the DataTable would be added to

//the worksheet as a header row

worksheet.Cells.ImportDataTable(dataTable, true, "A1");

workbook.Save(MyDir+"Import From Data Table.xls");

تحميل رمز عينة

تصدير البيانات من المستند

Aspose.Cells لا تسهل فقط على مستخدميها استيراد البيانات إلى أوراق العمل من مصادر بيانات خارجية ولكن تسمح لهم أيضًا بتصدير بيانات ورقة العمل الخاصة بهم إلى DataTable. كما نعلم أن DataTable هي جزء من ADO.NET وتستخدم لاحتواء البيانات. بمجرد تخزين البيانات في DataTable، يمكن استخدامها بأي طريقة وفقًا لمتطلبات المستخدمين.

تصدير البيانات إلى DataTable (.NET) باستخدام Aspose.Cells

يمكن للمطورين تصدير بيانات جدول العمل الخاص بهم إلى كائن DataTable عن طريق استدعاء إما طريقة ExportDataTable أو ExportDataTableAsString من فئة Cells. تُستخدم كلتا الطريقتين في سيناريوهات مختلفة، والتي سيتم مناقشتها أدناه بمزيد من التفصيل.

الأعمدة التي تحتوي على بيانات مكونة من نوع واحد

نحن نعلم أن جدول البيانات يخزن البيانات كتسلسل من الصفوف والأعمدة. إذا كانت جميع القيم في أعمدة ورقة عمل من النوع المقيد (وهذا يعني أن جميع القيم في العمود يجب أن تكون لها نفس نوع البيانات) ثم يمكننا تصدير محتوى الورقة العمل باستدعاء طريقة ExportDataTable من فئة الخلايا. طريقة ExportDataTable تأخذ المعاملات التالية لتصدير بيانات ورقة العمل ككائن DataTable: رقم الصف، يمثل رقم الصف الأول من حيث سيتم تصدير البيانات.

  • رقم العمود، يمثل رقم العمود الأول من حيث سيتم تصدير البيانات
  • عدد الصفوف , يمثل عدد الصفوف المراد تصديرها
  • عدد الأعمدة , يمثل عدد الأعمدة المراد تصديرها
  • تصدير أسماء الأعمدة , خاصية منطقية تشير ما إذا كان يجب تصدير البيانات في الصف الأول من ورقة العمل كأسماء أعمدة DataTable أم لا
//Creating a file stream containing the Excel file to be opened

FileStream fstream = new FileStream(FOD_OpenFile.FileName, FileMode.Open);

//Instantiating a Workbook object

//Opening the Excel file through the file stream

Workbook workbook = new Workbook(fstream);

//Accessing the first worksheet in the Excel file

Worksheet worksheet = workbook.Worksheets[0];

//Exporting the contents of 2 rows and 2 columns starting from 1st cell to DataTable

DataTable dataTable = worksheet.Cells.ExportDataTable(0, 0,2, 2, true);

//Binding the DataTable with DataGrid

dataGridView1.DataSource = dataTable;

//Closing the file stream to free all resources

fstream.Close();

الأعمدة التي تحتوي على بيانات غير مكونة من نوع واحد

إذا كانت جميع القيم في أعمدة ورقة عمل ليست من النوع المقيد (وهذا يعني أن القيم في العمود قد تكون لها أنواع بيانات مختلفة) ثم يمكننا تصدير محتوى الورقة العمل باستدعاء طريقة ExportDataTableAsString من فئة الخلايا. طريقة ExportDataTableAsString تأخذ نفس مجموعة المعاملات كطريقة ExportDataTable لتصدير بيانات ورقة العمل ككائن DataTable.

//Creating a file stream containing the Excel file to be opened

FileStream fstream = new FileStream(FOD_OpenFile.FileName, FileMode.Open);

//Instantiating a Workbook object

//Opening the Excel file through the file stream

Workbook workbook = new Workbook(fstream);

//Accessing the first worksheet in the Excel file

Worksheet worksheet = workbook.Worksheets[0];

//Exporting the contents of 2 rows and 2 columns starting from 1st cell to DataTable

DataTable dataTable = worksheet.Cells.ExportDataTableAsString(0, 0, 2, 2, true);

//Binding the DataTable with DataGrid

dataGridView2.DataSource = dataTable;

//Closing the file stream to free all resources

fstream.Close();

تحميل رمز عينة