El caso es que tengo este código:
Código:
Esto hace que un fichero al pulsar en un botón (previamente definido), nos permita descargar el fichero, imprimirlo o abrirlo donde se encuentre. Lo hace perfectamente...hasta que te vas a Vista, que te da el error siguiente:string sSel = "select idUser, name, surnames, company, nif, telephone, mobile, fax, email, country, city, address, number, floor, cp, login from users order by idUser desc"; SqlDataAdapter da; DataTable dt = new DataTable(); try { da = new SqlDataAdapter(sSel, conexion); da.Fill(dt); this.dg.DataSource = dt; this.dg.DataBind(); } catch(Exception ex) { Response.Write("Error: " + ex.Message); } // Introducir aquí el código de usuario para inicializar la página // No enviamos la respuesta hasta que hemos // terminado de procesar todo Response.Buffer = true; // Ponemos el tipo de la respuesta al valor adecuado Response.ContentEncoding = System.Text.Encoding.UTF7; Response.ContentType = "application/vnd.ms-excel"; Response.AddHeader("Content-Disposition","attachment; filename=InformeUsuarios.xls"); // Desactivamos el view state, ya que no lo necesitamos this.EnableViewState = false; // Desactivamos propiedades conflictivas dg.AllowPaging = false; dg.AllowSorting = false; // Enlazamos los datos de nuevo para reflejar // los cambios dg.DataBind(); // A continuación escribiremos el HTML que genera // el dataGrid en la respuesta para enviárselo al // cliente System.IO.StringWriter tw = new System.IO.StringWriter(); HtmlTextWriter hw = new HtmlTextWriter(tw); dg.RenderControl(hw); Response.Write(tw.ToString()); // Enviamos los datos al cliente Response.End();
"El contenido de la celda es excesivo".
Y sale luego una ristra de números que sale a duras penas los datos.
La solución que se me ocurre es utilizar las librerías de Vista, pero no podrán visualizar las versiones inferiores el fichero :llorando: :llorando: . Porque estoy seguro que funcionará si cambio las librerías, pero no lo puedo probar, porque tengo un ordenador con XP.
¿Alguien tiene alguna idea de qué puede estar pasando?
Saludos.