使用C#导出超过100k的数据sql server到excel

时间:2015-12-02 10:43:52

标签: c# asp.net sql-server

private void button1_Click(object sender, EventArgs e)
        {
            string constr = ConfigurationManager.ConnectionStrings["db"].ConnectionString;

            SqlConnection con = new SqlConnection(constr);
            SqlCommand cmd = new SqlCommand("SELECT * FROM Sheet1$", con);

            SqlDataAdapter sda = new SqlDataAdapter();
            sda.SelectCommand = cmd;
            DataTable dt = new DataTable();
            sda.Fill(dt);
            //BindingSource bsource = new BindingSource();
            //bsource.DataSource = dt;
            //dataGridView1.DataSource = bsource;
            //sda.Update(dt);

            DataSet ds = new DataSet();
            ds.Locale = System.Threading.Thread.CurrentThread.CurrentCulture;
            sda.Fill(dt);
            ds.Tables.Add(dt);
            ExcelLibrary.DataSetHelper.CreateWorkbook("D:\\ChallanBulkUpload\\ChallanBulkUpload\\ChallanBulkUpload\\UploadFile\\challan.xls", ds);

        }

1 个答案:

答案 0 :(得分:1)

根据我的经验,使用oledb处理excel文件有点儿麻烦。 我切换到使用OpenXml(http://www.microsoft.com/en-us/download/details.aspx?id=30425)。 也许也是一个解决方案......

更新: 您还可以使用excel互操作来处理Excel文件(xls),请参阅https://msdn.microsoft.com/en-us/library/ms173186(v=vs.80).aspx

要使其正常工作,必须在系统上安装Excel。