ASP.NET用DataSet匯出到Excel的方法

來源:互聯網
上載者:User

複製代碼 代碼如下: /讀取臨時檔案

GYYW.DA.Common.Base_SqlDataBase daBZDM = new GYYW.DA.Common.Base_SqlDataBase();

DataSet dsBZDM = daBZDM.GetDataSetBySql("select QCDM,MC,GG from WG_BZDM where QCDM like '02%'");

//同時將虛擬目錄下的Data作為臨時檔案目錄。

string urlPath = HttpContext.Current.Request.ApplicationPath + "/Data/";

string physicPath = HttpContext.Current.Server.MapPath(urlPath);

//string fileName = Guid.NewGuid() + ".Xls";

string fileName ="DownLoad.Xls";

string connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + physicPath + fileName +";Extended Properties=Excel 8.0;";

OleDbConnection objConn = new OleDbConnection(connString);

OleDbCommand objCmd = new OleDbCommand();

objCmd.Connection = objConn;

objCmd.Connection.Open();

//建立表結構

objCmd.CommandText = @"CREATE TABLE Sheet1(器材代碼 varchar,名稱 varchar, 規格 varchar)";

objCmd.ExecuteNonQuery();

//建立插入動作的Command

objCmd.CommandText = "INSERT INTO Sheet1(器材代碼, 名稱,規格) VALUES (@QCDM, @MC, @GG)";

objCmd.Parameters.Clear();

objCmd.Parameters.Add(new OleDbParameter("@QCDM", OleDbType.VarChar));

objCmd.Parameters.Add(new OleDbParameter("@MC", OleDbType.VarChar));

objCmd.Parameters.Add(new OleDbParameter("@GG",OleDbType.VarChar));

//遍曆DataSet將資料插入建立的Excel檔案中

foreach (DataRow row in dsBZDM.Tables[0].Rows)

{

for (int i=0; i<objCmd.Parameters.Count; i++)

{

objCmd.Parameters[i].Value = row[i];

}

objCmd.ExecuteNonQuery();

}

objCmd.Connection.Close();

//提供下載

//清除臨時檔案

HttpResponse response = HttpContext.Current.Response;

response.Clear();

//為輸出作準備

response.WriteFile(urlPath + fileName);

string httpHeader="attachment;filename=KCMX.Xls";

response.AppendHeader("Content-Disposition", httpHeader);

response.Flush();

//輸出完畢後清除臨時檔案

string strSaveDir = "../Data/";

string strFile = Server.MapPath(strSaveDir + fileName).ToString();

//string sss = urlPath + fileName;

System.IO.File.Delete(strFile);//刪除臨時檔案

response.End();

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.