Problema con funcion para importar excel

Iniciado por diego_lp, 22 Abril 2010, 20:17 PM

0 Miembros y 1 Visitante están viendo este tema.

diego_lp

Hola a todos, a ver si alquien me puede dar una mano.
Tengo una funcion que funciona bien pero no del todo, a ver, cuando importo los datos de una hoja excel a un datagridview solo me "lee" o "reconoce" cuando la celda tiene determinado formato (por ejemplo formato texto), pero hay celdas que tienen otros formatos que no me las lee, es decir, hay celdas que cuando las importo a mi dgv quedan en blanco  :-\
Tal vez alquien dé con el error o tenga una funcion mas completa que lea todos los formatos de las celdas.
Mi funcion es la siguiente:
Function ImpExcel(ByVal ruta As String, ByVal dgv As DataGridView)
        'funcion que muestra todos los campos de la hoja 1 de un excel en un datagridview
        Dim miconexion As New OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; data source=" & ruta & "; Extended Properties=Excel 8.0;")
        Dim comando As New OleDbDataAdapter("select * from [cotizaciones al público$]", miconexion)
        comando.TableMappings.Add("Table", "Attendence")
        Dim DtSet As New DataSet
        comando.Fill(DtSet)
        dgv.DataSource = DtSet.Tables(0)
        Return Nothing
    End Function

Bueno, espero que alguen me pueda dar una mano.
Gracias.
Saludos.
Los programadores hicimos un pacto con Dios, él no hace sistemas y nosotros no hacemos milagros!

43H4FH44H45H4CH49H56H45H

De pasada, prueba asi (con un DataTable) :

Código (csharp) [Seleccionar]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;

namespace Excel
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                DataTable dT = new DataTable();
                String sConect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Libro1.xls;Extended Properties=Excel 8.0;";
                OleDbConnection oConn = new OleDbConnection(sConect);
                OleDbDataAdapter oDa = new OleDbDataAdapter("SELECT * FROM [pru$]", oConn);
                //OleDbDataAdapter oDa = new OleDbDataAdapter("SELECT F1 FROM [pru$]", oConn);
                oConn.Open();
                oDa.Fill(dT);
                oConn.Close();
                dataGridView1.DataSource = dT;
            }
            catch (Exception er)
            {
                MessageBox.Show(er.Message);
            }
        }
    }
}


Es similar en VB.NET

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W

diego_lp

Gracas 43H4FH44H45H4CH49H56H45H  por tomarte la molestia de responder, pero no, tampoco funcionó  :-(
No se que otra cosa puedo hacer, tal vez pasarlo a csv con alguna api o con alguna funcion, otra cosa no se me ocurre,  :huh:
Si se te ocurre alguna idea estoy desde ya muy agradecido.
Saludos y muchas gracias de nuevo por responder.
Los programadores hicimos un pacto con Dios, él no hace sistemas y nosotros no hacemos milagros!

43H4FH44H45H4CH49H56H45H

Ya lo probe y funciona:

http://www.4shared.com/file/fnLUk6GE/Excel.html

Pruebalo para saber si te sale algun error, esta en c#.

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W

diego_lp

Gracias!
Lo voy a probar!
Cualquier cosa sigo molestando... ;D
Saludos.
Los programadores hicimos un pacto con Dios, él no hace sistemas y nosotros no hacemos milagros!