في الصباح، تمت إضافة وظيفة إلى جزء إدارة الطلب في النظام لتصدير معلومات الطلب التي تم الاستعلام عنها إلى Excel ليقوم المسؤول بتحليلها. الكود المكتوب مسبقًا هو كما يلي:
Response.Clear();
Response.BufferOutput = true;
Response.Charset = "GB2312";
Response.AppendHeader("Content-Disposition"، "attachment؛ filename = FileName.xls")؛
Response.ContentEncoding = Encoding.GetEncoding("GB2312");
Response.ContentType = "application/ms-excel";
this.EnableViewState = false;
System.Globalization.CultureInfo myinfo = new System.Globalization.CultureInfo("ZH-CN"، true);
StringWriter osw = new StringWriter(myinfo);
HtmlTextWriter ohtw = new HtmlTextWriter(osw);
dgQueryResult.RenderControl(ohtw);
Response.Write(osw);
Response.End();
استخدم الاستعلام الخاص بي الترحيل، وطلب العميل تصدير كافة البيانات التي تم الاستعلام عنها إلى Excel، لذلك، لا يمكن تحقيق هذه الوظيفة عن طريق تصدير محتوى عنصر التحكم إلى Excel كما كان من قبل، لذلك قمت بتغيير الكود إلى هذا:
استجابة. واضح ()؛
Response.BufferOutput = true;
Response.Charset = "GB2312";
Response.AppendHeader("الترتيب للمحتوى"،"attachment;filename = order.xls");
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.ContentType = "application/ms-excel";
string strExcelHeader = string.Empty;
سلسلة strExcelItems؛
if(ViewState["SQL"] != null) // احصل على عبارة SQL المستخدمة في الاستعلام السابق
{
// احصل على عناوين كل عمود، وافصل كل عنوان بـ t، وأضف حرف إرجاع بعد عنوان العمود الأخير
strExcelHeader = "رقم الطلبtالتاجرtالمنطقةtالفئة الصغيرةtالسلعtالمبلغ المدفوعtوقت الطلبtحالة صالحةtحالة المعالجةtn";
// اكتب معلومات البيانات التي تم الحصول عليها إلى دفق إخراج HTTP
Response.Write(strExcelHeader);
// معالجة بيانات نتيجة الاستعلام صفًا تلو الآخر
ITDBHandle itDbHandle = new ITDBHandle();
itDbHandle.QueryString = ViewState["SQL"].ToString();
SqlDataReader Reader = itDbHandle.ExecuteDataReader();
بينما (القارئ.قراءة ())
{
strExcelItems = string.Empty;
strExcelItems += Reader["OrderID"].ToString() + "t";
strExcelItems += Reader["DealerName"].ToString() + "t";
strExcelItems += Reader["City"].ToString() + "t";
strExcelItems += Reader["SmallClassName"].ToString() + "t";
strExcelItems += Reader["BrandName"].ToString() + Reader["Model"].ToString() + "t";
strExcelItems += Reader["TotalPrice"].ToString() + "t";
strExcelItems += Reader["OrderDate"].ToString() + "t";
strExcelItems += Reader["IsValid"].ToString() + "t";
strExcelItems += Reader["DealState"].ToString() +"n";
Response.Write(strExcelItems);
}
Reader.Close();
Response.End();
}
هنا أكتب ببساطة البيانات التي تم الاستعلام عنها في شكل Excel (وبالطبع يمكن أيضًا أن تكون بتنسيقات أخرى، مثل XML)، وهو ما يكفي للاحتياجات البسيطة، وبالطبع، من السهل جدًا استخدام .NET للعمل مباشرة ملفات Excel، هناك العديد من هذه الأمثلة للرجوع إليها.