مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

jimcode

عضویت از 1395/09/08

ایجاد فایل اکسل از پایگاه داده

  • یکشنبه 23 مهر 1396
  • 01:18
تشکر میکنم

سلام 

من از مقاله شما به لینک https://barnamenevisan.org/Articles/Article5038.html استفاه کردم و پیغام 

System.InvalidOperationException: 'Both DataSource and DataSourceID are defined on 'GridView1'.  Remove one definition.'

رو به من داد و من datasource را از صفحه .aspx پاک کردم و اجرا کردم  و دکمه خروجی فایل اکسل رو زدم فایل اکسل رو دانلود کرد اما فرمتش رو نخواند و حجم فایل هم 1kb بیشتر نبود

و اگر بخوام از طریق dataTableAdaptor و تابع getdata() دیتاست استفاده کنم از همین رویه استفاده کنم

سپاس

پاسخ های این پرسش

تعداد پاسخ ها : 3 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • یکشنبه 23 مهر 1396
  • 09:13

من نمونه موجود در مقاله رو بررسی کردم و مشکلی نداشت

احتمالا جایی در پیاده سازی اشتباه کردید

کاربر سایت

jimcode

عضویت از 1395/09/08

  • یکشنبه 23 مهر 1396
  • 17:57

من کد زیر هم تست کردم اما وقتی دانلود میشه و  با اکسل بازش می کنم فرمت فابل رو ایراد میگیره (  Microsoft Excel cannot open files of this type  )

    private DataTable GetData(SqlCommand cmd)
    {
        DataTable dt = new DataTable();
        //String strConnString = System.Configuration.ConfigurationManager.
        //     ConnectionStrings["sa"].ConnectionString;
        SqlConnection con = new SqlConnection("Data Source=DataSql;Initial Catalog=TestExpImp;Integrated Security=True");
        SqlDataAdapter sda = new SqlDataAdapter();
        cmd.CommandType = CommandType.Text;
        cmd.Connection = con;
        try
        {
            con.Open();
            sda.SelectCommand = cmd;
            sda.Fill(dt);
            return dt;
        }
        catch (Exception ex)
        {
            throw ex;
        }
        finally
        {
            con.Close();
            sda.Dispose();
            con.Dispose();
        }
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        //Get the data from database into datatable
        string strQuery = "select IdUser, Name, LastName from UserTbl";
        SqlCommand cmd = new SqlCommand(strQuery);
        DataTable dt = GetData(cmd);

        //Create a dummy GridView
        GridView GridView1 = new GridView();
        GridView1.Attributes.Add("runat", "server");
        GridView1.AllowPaging = false;
        GridView1.DataSource = dt;
        GridView1.DataBind();

        Response.Clear();
        Response.Buffer = true;
        Response.AddHeader("content-disposition", "attachment;filename=DataTable.xls");
        Response.Charset = "";
        Response.ContentType = "application/vnd.ms-excel";
        StringWriter sw = new StringWriter();
        HtmlTextWriter hw = new HtmlTextWriter(sw);

        for (int i = 0; i < GridView1.Rows.Count; i++)
        {
            //Apply text style to each Row
            GridView1.Rows[i].Attributes.Add("class", "textmode");
        }
        GridView1.RenderControl(hw);

        //style to format numbers to string
        string style = @"<style> .textmode { mso-number-format:\@; } </style>";
        Response.Write(style);
        Response.Output.Write(sw.ToString());
        Response.Flush();
        Response.End();
    }

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • دوشنبه 24 مهر 1396
  • 09:28

ورژن اکسل شما شاید مشکل داره

در یک سیستم دیگه تست کنید

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)