leer un archivo csv desde c#

24/02/2010 - 02:00 por paulcc84 | Informe spam
Hola a todos necesito saber como se lee un archivo csv con c# y cargarlo en
un grid
si alguien sabe se lo agradeceria hasta pronto
desarrollo

Preguntas similare

Leer las respuestas

#1 Mauricio Atanache
24/02/2010 - 05:07 | Informe spam
Hola, puedes abrir el archivo csv con el proveedor de datos de OleDb, usando
una cadena de conexión similar a esta :

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MisDatos\;Extended
Properties=\"text;HDR=Yes;FMT=Delimited\";"

y subirlo a un DataSet mediante un procedimiento similar a este :

private DataSet RecuperarOrigenDatos()
{
string lcTabla = txtTabla.Text ; // txtTabla es un control TextBox
donde capturo el nombre del archivo...

string lcSql = "Select * from " + lcTabla.Trim() ;
string lcConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=C:\MisDatos\;Extended Properties=\"text;HDR=Yes;FMT=Delimited\";";

DataSet oDs = new DataSet();
OleDbConnection oConn = new OleDbConnection(lcConn);
OleDbDataAdapter oDa = new OleDbDataAdapter();

try
{
oDa.SelectCommand = new OleDbCommand( lcSql, oConn );
oDa.Fill(oDs);
return oDs;
}
catch (Exception ex)
{
MessageBox.Show( "Error : " + ex.Message );
return null;
} }

El DataSet que retorna el método, lo puedes usar como el DataSource del
DataGrid.


Cordial saludo,


Mauricio Atanache G.
Respuesta Responder a este mensaje
#2 Alberto Poblacion
24/02/2010 - 08:45 | Informe spam
"paulcc84" wrote in message
news:
Hola a todos necesito saber como se lee un archivo csv
con c# y cargarlo en un grid



Aunque en otro mensaje ya te han dicho cómo leer el archivo mediante
OleDb, si por algún motivo no te conviene hacerlo así (por ejemplo, en 64
bits no funciona, o si no quieres preocuparte de que en el equipo donde se
va a ejecutar exista la versión correcta de los MDAC), entonces puedes
hacerlo abriendo directamente el fichero con un StreamReader, leyendo linea
por línea, y troceándolas por las comas con String.Split. Algo parecido a lo
siguiente (tecleado de memoria, sin probar).

using System.IO;
...
using (StreamReader rdr = new StreamReader(fichero))
{
string linea;
while (null!=(linea=rdr.ReadLine()))
{
string[] columnas = linea.Split(new char[]{','});
//Ahora ya tienes un array con las columnas, y puedes
//procesarlas con un bucle, por ejemplo para añadirlas
//a la siguiente fila de un grid
}
}
Respuesta Responder a este mensaje
#3 Félix
24/02/2010 - 20:06 | Informe spam
Yo ignoro si microsoft (propietario de formato) tiene publicada alguna
especificación, pero hasta donde recuerdo la coma puede ser escapeada
si se la coloca entre comillas...
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida