Foros del Web » Programando para Internet » ASPX (.net) »

Archivo .csv no se abre en columnas al abrir desde excell

Estas en el tema de Archivo .csv no se abre en columnas al abrir desde excell en el foro de ASPX (.net) en Foros del Web. Hola amigos, estoy trabajando en c.net con aspx vs2010, tengo un procedimiento para exportar una grilla a un archivo .csv que se abre con excell ...
  #1 (permalink)  
Antiguo 01/09/2011, 12:03
 
Fecha de Ingreso: abril-2008
Mensajes: 82
Antigüedad: 16 años
Puntos: 0
Archivo .csv no se abre en columnas al abrir desde excell

Hola amigos, estoy trabajando en c.net con aspx vs2010, tengo un procedimiento para exportar una grilla a un archivo .csv que se abre con excell y funciona bien.
Se supone que cada coma que separa los datos del .csv
debiera arrojarme cada dato en cada columna del excell (tengo oficce2007), pero al abrir el archivo en excell aparce cada fila en una sola columna o sea no me las separa por columnas del excel aunque tengan comas y eso que en la configuración regional de mi equipo tengo establecido la coma "," como separador de listas. He probado con muchas formas y ya no se que hacer, aquí envio el código del exportar.

protected void LinkButtonExp_Click(object sender, EventArgs e)
{

System.IO.FileStream ostrm;


try
{
string str_nombre_archivo = UserCode + exaños + exmess + exdias + exhoras + exmins + exsecs + ".csv";//xls
System.IO.File.Delete(Page.MapPath(str_nombre_arch ivo));
ostrm = new System.IO.FileStream(Page.MapPath(str_nombre_archi vo), System.IO.FileMode.Append);
System.IO.StreamWriter sw = new System.IO.StreamWriter(ostrm, System.Text.Encoding.Unicode);

String s = "";
DataSet DtaDatos = datos; //acá lleno el dataset con los datos no lo
escribí completo ya que acá no
es relevante

if (DtaDatos.Tables[0] == null)
return;

for (int i = 0; i < DtaDatos.Tables[0].Columns.Count; i++)

s = s + DtaDatos.Tables[0].Columns[i].ColumnName + ",";


sw.WriteLine(s.TrimEnd(','));
//sw.Write(sw.NewLine);
s = "";


for (int i = 0; i < DtaDatos.Tables[0].Rows.Count; i++)

{
for (int j = 0; j < DtaDatos.Tables[0].Columns.Count; j++)
s = s + HttpUtility.HtmlDecode(DtaDatos.Tables[0].Rows[i][j].ToString()) + ",";


sw.WriteLine(s.TrimEnd(','));
s = "";
}

sw.Close();
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment;filename=" + str_nombre_archivo);
Response.Charset = "";
Response.Cache.SetCacheability(HttpCacheability.No Cache);
Response.ContentType = "application/vnd.csv";
Response.Charset = "UTF-8";
//Response.ContentEncoding = System.Text.Encoding.Unicode;
Response.ContentEncoding = Encoding.Default;
Response.Redirect(str_nombre_archivo, false);


}
catch (Exception ex)
{
throw new Exception(ex.Message, ex);
}
}



Ayuda por favor : ( , gracias

Etiquetas: asp, columnas, csv, excell, aspx
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:23.