Di pagi hari, sebuah fungsi ditambahkan ke bagian manajemen pesanan dari sistem untuk mengekspor informasi pesanan yang ditanyakan ke Excel untuk dianalisis oleh administrator. Kode yang ditulis sebelumnya adalah sebagai berikut:
Response.Clear();
Respon.BufferOutput = benar;
Respon.Charset = "GB2312";
Response.AppendHeader("Disposisi Konten","lampiran;namafile = NamaFile.xls");
Response.ContentEncoding = Pengkodean.GetEncoding("GB2312");
Response.ContentType = "aplikasi/ms-excel";
ini.EnableViewState = false;
System.Globalization.CultureInfo myinfo = new System.Globalization.CultureInfo("ZH-CN", true);
StringWriter osw = StringWriter baru(info saya);
HtmlTextWriter ohtw = HtmlTextWriter baru(osw);
dgQueryResult.RenderControl(ohtw);
Respon.Write(osw);
Respon.End();
Permintaan saya menggunakan paging, dan pelanggan mengharuskan semua data yang ditanyakan diekspor ke Excel. Oleh karena itu, fungsi ini tidak dapat dicapai dengan mengekspor konten kontrol ke Excel seperti sebelumnya, jadi saya mengubah kode menjadi ini:
Respon.Hapus();
Respon.BufferOutput = benar;
Respon.Charset = "GB2312";
Response.AppendHeader("Disposisi Konten","lampiran;nama file = order.xls");
Response.ContentEncoding = Sistem.Teks.Encoding.GetEncoding("GB2312");
Response.ContentType = "aplikasi/ms-excel";
string strExcelHeader = string.Kosong;
string strExcelItem;
if(ViewState["SQL"] != null) // Dapatkan pernyataan SQL yang digunakan dalam query sebelumnya
{
// Dapatkan judul setiap kolom, pisahkan setiap judul dengan t, dan tambahkan karakter carriage return setelah judul kolom terakhir
strExcelHeader = "Nomor pesanantDealertRegiontKategori keciltKomoditastJumlah yang dibayartWaktu pemesanantStatus validtStatus pemrosesantn";
//Tulis informasi data yang diperoleh ke aliran keluaran HTTP
Respon.Write(strExcelHeader);
// Memproses data hasil query baris demi baris
ITDBHandle itDbHandle = ITDBHandle baru();
itDbHandle.QueryString = ViewState["SQL"].ToString();
Pembaca SqlDataReader = itDbHandle.ExecuteDataReader();
while(pembaca.Baca())
{
strExcelItems = string.Kosong;
strExcelItems += pembaca["OrderID"].ToString() + "t";
strExcelItems += pembaca["Nama Dealer"].ToString() + "t";
strExcelItems += pembaca["Kota"].ToString() + "t";
strExcelItems += pembaca["SmallClassName"].ToString() + "t";
strExcelItems += pembaca["Nama Merek"].ToString() + pembaca["Model"].ToString() + "t";
strExcelItems += pembaca["TotalHarga"].ToString() + "t";
strExcelItems += pembaca["Tanggal Pemesanan"].ToString() + "t";
strExcelItems += pembaca["IsValid"].ToString() + "t";
strExcelItems += pembaca["DealState"].ToString() +"n";
Respon.Write(strExcelItems);
}
pembaca.Tutup();
Respon.End();
}
Disini saya cukup menulis data yang diquery dalam bentuk excel (tentunya bisa juga dalam format lain seperti XML), yang cukup untuk kebutuhan sederhana tentunya juga sangat mudah menggunakan .NET untuk langsung beroperasi File Excel. , ada banyak contoh untuk referensi.