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

Leer celda excel csharp

Estas en el tema de Leer celda excel csharp en el foro de ASPX (.net) en Foros del Web. Buenos días a todos, a ver si alguien me puede echar una mano. Tengo un archivo excel que estoy intentando importarlo a base de datos, ...
  #1 (permalink)  
Antiguo 19/03/2014, 03:17
 
Fecha de Ingreso: septiembre-2008
Mensajes: 30
Antigüedad: 16 años, 2 meses
Puntos: 0
Leer celda excel csharp

Buenos días a todos, a ver si alguien me puede echar una mano.

Tengo un archivo excel que estoy intentando importarlo a base de datos, la cosa funciona correctamente a excepción de un campo.

Cuando en una celda inserto una cadena de texto muy larga separada por "|" no termina de leérmela entera y se me queda entrecortada el string, con lo que al final la importación da error.

Quedaria algo así: "1|2|3|4|5|6|7|8|9|"

Os pego parte del codigo:

Lectura de excel:

OleDbCommand oDBCmdXLS = new OleDbCommand();
OleDbDataAdapter oDBDaXLS = new OleDbDataAdapter();
DataTable dttDatosXLS = new DataTable();

oDBCmdXLS.CommandText = "SELECT * FROM [" + sNombreHoja + "]";
oDBCmdXLS.Connection = oConnXLS;
oDBDaXLS.SelectCommand = oDBCmdXLS;

oDBDaXLS.Fill(dttDatosXLS);

Lectura de datatable para preparar procesado de datos

DataRow row = datosTable.NewRow();

for (int x = 0; x < datosTable.Columns.Count /*Número de columnas que necesito*/; x++)
{
if (x < dttDatosXLS.Columns.Count)
{
row[x] = dttDatosXLS.Rows[i][x];
}
}

Muchas gracias de antemano.
  #2 (permalink)  
Antiguo 19/03/2014, 12:43
Avatar de Grost  
Fecha de Ingreso: enero-2014
Ubicación: Guatemala
Mensajes: 25
Antigüedad: 10 años, 10 meses
Puntos: 1
Respuesta: Leer celda excel csharp

Hola portobilbao, te comento que yo he trabajado con archivos de excel, pero no los trabajo con formato *.xls formato97/2003 y te pongo el código que yo utilizo.


Código PHP:
  string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\PreCreditBatch\BatchFiles\working\" + uploadedFileName + "Extended Properties='Excel 8.0;HDR=Yes;'";

                    dt = new DataTable("
fileCSV");
                    using (OleDbConnection conn = new OleDbConnection(connectionString))
                    using (OleDbDataAdapter da = new OleDbDataAdapter("
SELECT FROM [batch$]", conn))
                    {
                        da.Fill(dt);
                    }

                    if (dt.Columns.Count >= 9)
                    { 
  #3 (permalink)  
Antiguo 19/03/2014, 12:47
Avatar de Grost  
Fecha de Ingreso: enero-2014
Ubicación: Guatemala
Mensajes: 25
Antigüedad: 10 años, 10 meses
Puntos: 1
De acuerdo Respuesta: Leer celda excel csharp

Hola portobilbao, te comento que yo he trabajado con archivos de excel, pero no los trabajo con formato *.xls formato97/2003 y te pongo el código que yo utilizo.


Código:
uploadedFileName = "archivo.xls";
string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\" + uploadedFileName + "; Extended Properties='Excel 8.0;HDR=Yes;'";

dt = new DataTable("fileCSV");
using (OleDbConnection conn = new OleDbConnection(connectionString))
     using (OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [batch$]", conn))
     {
          da.Fill(dt);
     }

     if (dt.Columns.Count >= 9)
     {
           //TODO: Aca manipulamos las columnas como un DataTable normal.
     }
Espero este código te sirva un montón y quedo a la orden.
  #4 (permalink)  
Antiguo 20/03/2014, 04:19
 
Fecha de Ingreso: septiembre-2008
Mensajes: 30
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Leer celda excel csharp

Gracias Grost,

Pero me sigue pasando lo mismo. El problema que estoy viendo es que la celda tiene una longitud máxima de 255 y lo que yo inserto en la celda supera ese numero de posiciones.

A ver si consigo averiguar como aumentar esa longitud y pongo la respuesta.

Etiquetas: celda, csharp, excel, funcion, text
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 03:24.