无法打开由c#创建的excell表单

无法打开由c#创建的excell表单

问题描述:

我在creating simple excel sheet in c# with strings as input链接的帮助下创建了一个excel表单。当我们打开保存的excel表单时,它会显示消息框,如"excel found unreadable content in "sample.xls". Do you want to recover the contents of this workbook? If you trust the source of this workbook, Click Yes"。我可以知道它是如何显示的吗?我的示例代码无法打开由c#创建的excell表单

protected void Button1_Click(object sender, EventArgs e) 
    { 
     //Create the data set and table 
     DataSet ds = new DataSet("New_DataSet"); 
     DataTable dt = new DataTable("New_DataTable"); 

     //Set the locale for each 
     ds.Locale = System.Threading.Thread.CurrentThread.CurrentCulture; 
     dt.Locale = System.Threading.Thread.CurrentThread.CurrentCulture; 
     //Create a query and fill the data table with the data from the DB 

     SqlConnection conn= new SqlConnection(ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString); 

     SqlCommand cmd =new SqlCommand ("SELECT Name,EmpCode FROM EmpDetails where EmpCode='"+Neena102+"'",conn); 
     // dr = conn.query(str); 
     SqlDataAdapter adr = new SqlDataAdapter(); 

     adr.SelectCommand = cmd; 
     adr.Fill(dt); 
     //Add the table to the data set 
     ds.Tables.Add(dt); 
     var rows = ds.Tables[0].Rows; 
     foreach (DataRow row in rows) 
     { 
      string name=Convert.ToString(row["Name"]); 
     //Here's the easy part. Create the Excel worksheet from the data set 
     ExcelLibrary.DataSetHelper.CreateWorkbook(@"F:\\reports\\"+name+".xls", ds); 
     System.Diagnostics.Process.Start(@"F:\\reports\\" + name + ".xls"); 
     } 
    } 
+1

您应该使用SQL参数来防止SQL注入。 – Sybren 2014-12-03 07:06:59

+0

@Sybren,如果使用SQL参数我可以解决这个问题吗? – 2014-12-03 07:08:31

+0

不,但它是阻止SQL注入的重要节点。 – Sybren 2014-12-03 07:09:36

请尝试以下变化。

进程startExcel = System.Diagnostics.Process.Start(@“F:\ reports \”+ name +“.xls”); startExcel.WaitForExit();