السلام عليكم
في بعض الأحيان نحن نحتاج إلى تحزين بعض السجلات من قواعد البيانات داخل ملفات ورد واكسل و xml وغيرها من الملفات، ويتم تخزين هذه الملفات عن طريق استخدام كائن file system object الذي سوف يقوم بإنشاء الملفات التي نريدها.
في الكود التالي سوف نقوم بعرض بيانات من جدول وتخزينها داخل ملف اكسل:
كود: <html dir="rtl">
<body bgcolor="#FFFFFF"> <%
accessdb="state_info"
cn="DRIVER={Microsoft Access Driver (*.mdb)};" cn=cn & "DBQ=" & server.mappath(accessdb)
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "select state,statename,capital,year,order from states "
rs.Open sql, cn
name_file= "states.xls"
set fso = createobject("scripting.filesystemobject")
Set act = fso.CreateTextFile(server.mappath(name_file), true)
act.WriteLine("<html><body>") act.WriteLine("<table border=""1"">") act.WriteLine("<tr>") act.WriteLine("<th nowrap>State</th>") act.WriteLine("<th nowrap>Abbreviaton</th>") act.WriteLine("<th nowrap>Capital</th>") act.WriteLine("<th nowrap>Year Entered</th>") act.WriteLine("<th nowrap>Entrance Number</th>") act.WriteLine("</tr>")
do while not rs.eof Act.WriteLine("<tr>") act.WriteLine("<td align=""right"">" & rs("statename") & "</td>" ) act.WriteLine("<td align=""right"">" & rs("state") & "</td>" ) act.WriteLine("<td align=""right"">" & rs("capital") & "</td>") act.WriteLine("<td align=""right"">"& rs("year") & "</td>") act.WriteLine("<td align=""right"">"& rs("order") & "</td>") act.WriteLine("</tr>")
rs.movenext
loop
act.WriteLine("</table></body></html>")
act.close
response.write "<a href='states.xls'>States</a> (.xls) تم إنشاء ملف " & now() & "<br>"
%> </body> </html>
|
بعد أن قمنا بعمل الاتصال بقاعدة البيانات وتحديد الجدول الذي سوف يتم تخزين السجلات داخل ملف اكسل.
حيث قمت بتخزين داخل المتغير name_file اسم الملف الذي شوف نقوم بإنشائه، مع تحديد امتداد الملف الذي سوف نقوم بإنشائه وهو ملف اكسل، واسم الملف الذي سوف نقوم بإنشائه هو states.xls
كود: set fso = createobject("scripting.filesystemobject") |
هنا نحدد الطريقة التي سوف نقوم بإنشاء الملفات عن طريقها وهي كائن file system object.
Set act = fso.CreateTextFile(server.mappath(name_file), true)
هنا سوف نضع المتغير act بأن يقوم بإنشاء الملف عن طريق الخاصية CreateTextFile ، مع تحديد اسم الملف الذي سوف نقوم بإنشائه، وهو الملف المخزن داخل المتغير name_file
كود: act.WriteLine("<html><body>") act.WriteLine("<table border=""1"">") act.WriteLine("<tr>") act.WriteLine("<th nowrap>State</th>") act.WriteLine("<th nowrap>Abbreviaton</th>") act.WriteLine("<th nowrap>Capital</th>") act.WriteLine("<th nowrap>Year Entered</th>") act.WriteLine("<th nowrap>Entrance Number</th>") act.WriteLine("</tr>")
|
حيث هنا بعد أن يتم إنشاء الملف على السيرفر، سوف يتم بدء بكتابة البيانات داخل الملف الذي تم إنشائه.
حيث act.WriteLine سوف تقوم بعملية الطباعة داخل الملف.
حيث في هذا الكود سوف يتم إنشاء العناوين للسجلات التي سوف نقوم بإنشائه.
كود: do while not rs.eof Act.WriteLine("<tr>") act.WriteLine("<td align=""right"">" & rs("statename") & "</td>" ) act.WriteLine("<td align=""right"">" & rs("state") & "</td>" ) act.WriteLine("<td align=""right"">" & rs("capital") & "</td>") act.WriteLine("<td align=""right"">"& rs("year") & "</td>") act.WriteLine("<td align=""right"">"& rs("order") & "</td>") act.WriteLine("</tr>")
rs.movenext
loop |
خيث هنا سوف نستخدم do while not rs.eof لعرض جميع السجلات.
وبعدها سوف يتم طباعة السجلات داخل الجدول.
وبعد أن يتم إنشاء جميع السجلات التي نريدها نقوم بإعلاق الملف الذي قمنا بإنشائه.
act.close
حيث أنها سوف تحدد بأنه تم الإنتهاء من إنشاء الملف.
CODE
response.write "<a href='states.xls'>States</a> (.xls) تم إنشاء ملف " & now() & "<br>"
هنا سوف يتم وضع رابط للملف الذي قمنا بإنشائه حتى تستطعون من تحميلها بعد أن تم إنشائه.
هكذا نكون قد انتهينا من كيفية إنشاء ملف اكسل.
وهذه نفس الطريقة لإنشاء ملف الورد، فقط كل ما عليك هو تغير امتداد الملف الذي نريد إنشائه بدل من الامتداد xls إلى doc.
ونفس الشئ لإنشاء ملف html فقط قم بوضع الامتداد.
وأيضاً لإنشاء ملف xml تتم بنفس الكود الذي بالأعلى، ولكن الاختلاف هو بدل من أن وضعنا كود ال html الجداول داخل الملفات فقط سوف نقوم بكتابة كود xml، ولكم التغيير:
كود: <html>
<body bgcolor="#FFFFFF"> <%
accessdb="state_info"
cn="DRIVER={Microsoft Access Driver (*.mdb)};" cn=cn & "DBQ=" & server.mappath(accessdb)
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "select state,statename,capital,year,order from states order by states.order "
rs.Open sql, cn
name_file= "states.xml"
set fso = createobject("scripting.filesystemobject")
Set act = fso.CreateTextFile(server.mappath(name_file), true)
act.WriteLine(" CODE PHP: <?xml version=""1.0""?>") act.WriteLine("<states>")
do while not rs.eof
counter=counter+1
act.WriteLine("<state id="""& counter &""">") act.WriteLine("<state_abbrev>" & rs("state") & "</state_abbrev>" ) act.WriteLine("<state_name>" & rs("statename") & "</state_name>" ) act.WriteLine("<state_capital>" & rs("capital") & "</state_capital>") act.WriteLine("<year_admitted>"& rs("year") & "</year_admitted>") act.WriteLine("<order_admitted>"& rs("order") & "</order_admitted>") act.WriteLine("</state>")
rs.movenext loop
act.WriteLine("</states>")
act.close
response.write "<a href='states.xml'>States</a> (.xml) تم إنشاء الملف<br>" response.write "on " & now() & "<br>" %> </body> </html> |
لا يوجد هناك فرق كبير سوى بدل أن قمنا بوضع كود ال html لإنشاء الملف قمنا باستبداله بكود ال xml.
أرجوا أن يكون هذا الدرس قد أفادكم، وأي ملاحظات او استفسار لا تترددوا بالكتابة.
مع تحياتي