2013-07-31 2 views
0

다음 코드를 사용하여 Excel 시트를 다운로드합니다. enter image description hereAsp.Net에서 다운로드 한 Excel 시트 (.xls)를 여는 동안 예외가 발생합니다.

위의 코드가 다운로드 내 logic.After의 코드를 시작, 내가 엑셀 ​​Sheet.It 보여줍니다 열이

때문에이 경고의 enter image description here

, 임 업로드하려고 같은 경고 같은 페이지를 Asp.Net.It을 사용하여 MySQL 데이터베이스에 "페이지가 올바른 형식으로 아닙니다"같은 예외를 보여줍니다.

protected void download_Click(object sender, EventArgs e) 
{ 

    ExportToExcel(SqlDataSource1, "StudentMarks"); 
    } 
public void ExportToExcel(SqlDataSource dataSrc, string fileName) 
{ 
    //Add Response header 
    Response.Clear(); 
    Response.AddHeader("content-disposition", string.Format("attachment;filename={0}.xls", fileName)); 
    Response.Charset = ""; 
    Response.ContentType = "application/ms-excel"; 
    //GET Data From Database     
    MySqlConnection cn = new MySqlConnection(dataSrc.ConnectionString); 
    // string query = dataSrc.SelectCommand.Replace("\r\n", " ").Replace("\t", " "); 
    MySqlCommand cmd9 = new MySqlCommand("select subject from class_subject where standard='" + DropDownList1.SelectedItem.Value + "';", cn); 
    // cn.Open(); 

    //DataSet ds9=new DataSet(); 
    MySqlDataAdapter da9 = new MySqlDataAdapter(cmd9); 
    // da9.Fill(ds9); 
    DataTable dt = new DataTable(); 
    da9.Fill(dt); 

    StringBuilder sb9 = new StringBuilder(); 




    for (int count = 0; count < dt.Rows.Count; count++) 
    { 
     // string headerRowText = GridView4.HeaderRow.Cells[i].Text; 
     sb9.Append("'"); 
     sb9.Append(dt.Rows[count][0].ToString()); 
     sb9.Append("'"); 
     if (count < dt.Rows.Count - 1) 
     //if (count < count3 - 1) 
     { 
      sb9.Append(","); 
     } 
    } 
    Label2.Text = sb9.ToString(); 
    //MySqlCommand fyearcmd = new MySqlCommand("select fyear from student_data where standard='" + DropDownList1.SelectedItem.Value + "' and completed_status='running';", cn); 
    //MySqlDataReader fyeardr = fyearcmd.ExecuteReader(); 

    string query = "select Admission_Num,Name,'Standard','Fyear','Type_of_exam'," + sb9.ToString() + " from student_data where standard='" + DropDownList1.SelectedItem.Value + "' and fyear='" + DropDownList4.SelectedItem.Value + "';"; 

    MySqlCommand cmd = new MySqlCommand(query, cn); 

    cmd.CommandTimeout = 999999; 
    cmd.CommandType = CommandType.Text; 
    try 
    { 
     cn.Open(); 
     MySqlDataReader dr = cmd.ExecuteReader(); 
     StringBuilder sb = new StringBuilder(); 
     //Session["fieldcount"] = dr.FieldCount.ToString(); 
     //Label1.Text = dr.FieldCount.ToString(); 
     //Add Header 
     int count3 = 4; 
     for (int count = 0; count < dr.FieldCount; count++) 
     //for (int count = 0; count < count3; count++) 
     { 
      if (dr.GetName(count) != null) 
       sb.Append(dr.GetName(count)); 
      if (count < dr.FieldCount - 1) 
      //if (count < count3 - 1) 
      { 
       sb.Append("\t"); 
      } 
     } 
     Response.Write(sb.ToString() + "\n"); 
     Response.Flush(); 
     //Append Data 
     while (dr.Read()) 
     { 
      sb = new StringBuilder(); 

      //for (int col = 0; col < dr.FieldCount - 1; col++) 
      for (int col = 0; col <= count3; col++) 
      { 
       if (col < (count3 - 2)) 
       { 

        if (!dr.IsDBNull(col)) 
         sb.Append(dr.GetValue(col).ToString().Replace(",", " ")); 
        sb.Append("\t"); 
       } 
       if (col == (count3 - 2)) 
       { 

        if (!dr.IsDBNull(col)) 
         sb.Append(DropDownList1.SelectedItem.Text); 
        sb.Append("\t"); 
       } 
       if (col == (count3 - 1)) 
       { 
        if (!dr.IsDBNull(col)) 
        { 
         //sb.Append(dr.GetValue(col).ToString().Replace(",", " ")); 
         sb.Append(DropDownList4.SelectedItem.Text); 
        } 
        sb.Append("\t"); 
       } 
       if (col == count3) 
       { 
        if (!dr.IsDBNull(col)) 
        { 
         //sb.Append(dr.GetValue(col).ToString().Replace(",", " ")); 
         sb.Append(DropDownList3.SelectedItem.Text); 
        } 
        sb.Append("\t"); 
       } 
      } 
      //if (!dr.IsDBNull(dr.FieldCount - 1)) 
      // sb.Append(dr.GetValue(dr.FieldCount - 1).ToString().Replace(",", " ")); 
      Response.Write(sb.ToString() + "\n"); 
      Response.Flush(); 

     } 
     dr.Dispose(); 
    } 
    catch (Exception ex) 
    { 
     Response.Write(ex.Message); 
    } 
    finally 
    { 
     cmd.Connection.Close(); 
     cn.Close(); 
    } 
    Response.End(); 
} 

그래서 여는 동안 밖으로 보여주는 오류 엑셀 시트를 다운로드하는 방법을 제안을 저에게주십시오 엑셀 시트를 다운로드 내 전체 논리입니다.

+0

xls은 어떻게 작성합니까? –

+0

질문을 다시 한번 확인하십시오. 지금 변경했습니다. – Ajay

+0

그건 오류가 아니므로 경고 일 뿐이며 xls 확장자로 파일을 생성 할 때마다 발생합니다. 실제로 Excel에서 지원하는 XML 형식 (이 형식의 정확한 이름을 잊어 버렸습니다) 또는 그 밖의 형식 . 귀찮은 경우 레지스트리에서이 경고를 사용하지 않도록 설정하거나 .XML로 파일 확장명을 설정하고 파일을 열어 볼 수 있습니다. 선택한 옵션이 이상적이지 않습니다. 혼자 남겨두고 경고 메시지가 뜨면 "예"를 클릭해야한다고 설명합니다. – Icarus

답변

1

엑셀 파일이 아닌 csv 파일을 생성하고 있습니다. 당신을 변경하려고하면 헤더 :

Response.ContentType = "text/csv"; 
Response.AddHeader("Content-Disposition", "attachment;filename=myfilename.csv"); 

일반적으로 excel은 csv 파일을 열 때 기본입니다.

+0

Excel 시트 다운로드 (.xls 형식) – Ajay

+0

어떻게 그 점을 얻을 수 있는지 알고 싶습니다. 제발 ..... – Ajay

관련 문제