Ler "folhas inclinadas", onde as linhas são cabeçalhos e as colunas são linhas usando CData ADO.NET Provider for Excel

Exemplo de string de conexão com Excel usando CData ADO.NET Provider for Excel

Exemplo de string de conexão

Essa é uma string de conexão CData ADO.NET Provider for Excel para se conectar com Excel 2013, Excel 2010, Excel 2007, Excel 2003, Excel 2002, Excel 2000 ou Excel 97.

Ler "folhas inclinadas", onde as linhas são cabeçalhos e as colunas são linhas

Excel File=C:\Diretorio\Arquivo.xlsx;Orientation=Horizontal;

Conexão através de diferentes linguagens

C#

Exemplo de código em C# de conexão com Excel usando CData ADO.NET Provider for Excel:

using System;
using System.Data.CData.Excel;

class DatabaseConnection {
    static void Main() {
        // Define a string de conexão Excel usando CData ADO.NET Provider for Excel
        string connectionString = "Excel File=C:\\Diretorio\\Arquivo.xlsx;Orientation=Horizontal;";

        using (ExcelConnection connection = new ExcelConnection(connectionString)) {
            try {
                // Abre a conexão
                connection.Open();

                Console.WriteLine("Conexão aberta com sucesso!");

                //
                // INSIRA SEU CÓDIGO AQUI
                //
            }
            catch (ExcelException ex) {
                // Erros específicos do ExcelException
                Console.WriteLine("Erro: " + ex.Message);
            }
            catch (Exception ex) {
                // Outros erros
                Console.WriteLine("Erro: " + ex.Message);            
            }
            finally {
                // Fecha a conexão
                if (connection != null) {
                    connection.Close();
                    Console.WriteLine("Conexão fechada.");
                }
            }
        }
    }
}

Alternativamente, você pode usar o código abaixo, que usa a classe DbProviderFactory:

using System;
using System.Data.Common;

class DatabaseConnection {
    static void Main() {
        /// Define a string de conexão Excel usando CData ADO.NET Provider for Excel
        string connectionString = "Excel File=C:\\Diretorio\\Arquivo.xlsx;Orientation=Horizontal;";

        // Cria o objeto factory usando o namespace System.Data.CData.Excel
        DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.CData.Excel");

        using (DbConnection connection = factory.CreateConnection()) {
            if (connection == null) {
                Console.WriteLine("Não foi possível criar a conexão.");
                return;
            }

            connection.ConnectionString = connectionString;

            try {
                // Abre a conexão
                connection.Open();
                Console.WriteLine("Conexão aberta com sucesso!");

                //
                // INSIRA SEU CÓDIGO AQUI
                //
            }
            catch (DbException ex) {
                // Erros específicos do DbException
                Console.WriteLine("Erro: " + ex.Message);
            }
            catch (Exception ex) {
                // Outros erros
                Console.WriteLine("Erro: " + ex.Message);
            }
            finally {
                // Fecha a conexão
                if (connection != null) {
                    connection.Close();
                    Console.WriteLine("Conexão fechada.");
                }
            }
        }
    }
}

VB.NET

Exemplo de código em VB.NET de conexão com Excel usando CData ADO.NET Provider for Excel:

Imports System
Imports System.Data.CData.Excel

Public Class DatabaseConnection
    Public Shared Sub Main()
        ' Define a string de conexão Excel usando CData ADO.NET Provider for Excel
        Dim connectionString As String = "Excel File=C:\Diretorio\Arquivo.xlsx;Orientation=Horizontal;"

        Using connection As New ExcelConnection(connectionString)
            Try
                ' Abre a conexão
                connection.Open()

                Console.WriteLine("Conexão aberta com sucesso!")

                '
                ' INSIRA SEU CÓDIGO AQUI
                '

            Catch ex As ExcelException
                ' Erros específicos do ExcelException
                Console.WriteLine("Erro: " & ex.Message)
            Catch ex As Exception
                ' Outros erros
                Console.WriteLine("Erro: " & ex.Message)
            Finally
                ' Fecha a conexão
                If connection IsNot Nothing Then
                    connection.Close()
                    Console.WriteLine("Conexão fechada.")
                End If
            End Try
        End Using
    End Sub
End Class

Alternativamente, você pode usar o código abaixo, que usa a classe DbProviderFactory:

Imports System
Imports System.Data.Common

Public Class DatabaseConnection
    Public Shared Sub Main()
        ' Define a string de conexão Excel usando CData ADO.NET Provider for Excel
        Dim connectionString As String = "Excel File=C:\Diretorio\Arquivo.xlsx;Orientation=Horizontal;"

        ' Cria o objeto factory usando o namespace System.Data.CData.Excel
        Dim factory As DbProviderFactory = DbProviderFactories.GetFactory("System.Data.CData.Excel")

        Using connection As DbConnection = factory.CreateConnection()
            If connection Is Nothing Then
                Console.WriteLine("Não foi possível criar a conexão.")
                Return
            End If

            connection.ConnectionString = connectionString

            Try
                ' Abre a conexão
                connection.Open()
                Console.WriteLine("Conexão aberta com sucesso!")

                '
                ' INSIRA SEU CÓDIGO AQUI
                '

            Catch ex As DbException
                ' Erros específicos do DbException
                Console.WriteLine("Erro: " & ex.Message)
            Catch ex As Exception
                ' Outros erros
                Console.WriteLine("Erro: " & ex.Message)
            Finally
                ' Fecha a conexão
                If connection IsNot Nothing Then
                    connection.Close()
                    Console.WriteLine("Conexão fechada.")
                End If
            End Try
        End Using
    End Sub
End Class