El método Read Excel presenta OleDbConnection

Introducción

OleDbConnection es un objeto proporcionado por .NET Framework para acceder a varias fuentes de datos, incluidos los archivos de Excel. Al usar OleDbConnection para conectar un archivo de Excel, el programa tratará el archivo de Excel como una especie de base de datos, en la que cada hoja de trabajo es una tabla de base de datos. Por lo tanto, el lenguaje de consulta SQL se puede usar para recuperar y manipular datos en archivos de Excel.

Para conectar archivos de Excel, debe usar una cadena de conexión. Una cadena de conexión especifica el origen de datos al que conectarse y otros parámetros de conexión. Para los archivos de Excel, la cadena de conexión normalmente incluye el nombre del proveedor, la ruta al archivo de Excel y las propiedades extendidas. La siguiente es una cadena de conexión de ejemplo:

string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={Excel文件路径};Extended Properties='Excel 12.0;HDR=YES;IMEX=1;'";

En el código anterior, debe reemplazar {ruta del archivo de Excel} con la ruta del archivo de Excel real. El parámetro Provider especifica el nombre del proveedor de OleDb que se va a usar. Para versiones más recientes de archivos de Excel, normalmente se usa el proveedor "Microsoft.ACE.OLEDB.12.0". Para versiones anteriores de archivos de Excel, puede ser necesario utilizar el proveedor "Microsoft.Jet.OLEDB.4.0". El parámetro Propiedades extendidas especifica parámetros de conexión adicionales como HDR (si la primera línea es un encabezado) e IMEX (modo de importación/exportación).

Después de que la conexión sea exitosa, puede usar los objetos OleDbCommand y OleDbDataReader para ejecutar consultas SQL y leer los datos en el archivo de Excel. Utilice el objeto OleDbCommand para ejecutar varias sentencias SQL, como las sentencias SELECT, INSERT, UPDATE y DELETE. El conjunto de resultados de la consulta se puede leer mediante el objeto OleDbDataReader. Aquí hay un código de muestra:

OleDbConnection connection = new OleDbConnection(connectionString);
connection.Open();

OleDbCommand command = new OleDbCommand("SELECT * FROM [Sheet1$]", connection);
OleDbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
    string column1 = reader[0].ToString();
    string column2 = reader[1].ToString();
    // 读取更多列...
}

connection.Close();

En el código anterior, la conexión se abre mediante el objeto OleDbConnection. Luego use el objeto OleDbCommand para ejecutar una declaración SELECT y use el objeto OleDbDataReader para leer los resultados de la consulta. A medida que lee cada fila, puede usar el indexador del objeto OleDbDataReader o los métodos GetXXX para obtener el valor de cada columna. Finalmente, la conexión debe cerrarse explícitamente.

Este es el principio básico de OleDbConnection para leer archivos de Excel. Espero que esto lo ayude a comprender mejor la relación entre OleDbConnection y los archivos de Excel.

Use OleDbConnection para leer Excel en exe

Cuando el archivo de Excel necesita leerse en el programa exe, puede usar OleDbConnection para conectar el archivo de Excel. Este método nos permite leer datos en archivos de Excel tan fácilmente como leer una base de datos.

Primero, debe agregar una referencia al espacio de nombres System.Data.OleDb en su programa. Luego, use el siguiente código para concatenar los archivos de Excel:

string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={Excel文件路径};Extended Properties='Excel 12.0;HDR=YES;IMEX=1;'";
OleDbConnection connection = new OleDbConnection(connectionString);
connection.Open();

En el código anterior, debe reemplazar {ruta del archivo de Excel} con la ruta del archivo de Excel real. Si el archivo de Excel es de una versión anterior, debe cambiar "12.0" en la cadena de conexión al número de versión correspondiente.

Después de que la conexión sea exitosa, puede usar OleDbCommand y OleDbDataReader para ejecutar consultas SQL y leer datos en archivos de Excel. Aquí hay un ejemplo simple:

OleDbCommand command = new OleDbCommand("SELECT * FROM [{Sheet名称}$]", connection);
OleDbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
    string column1 = reader[0].ToString();
    string column2 = reader[1].ToString();
    // 读取更多列...
}

En el código anterior, debe reemplazar {Nombre de la hoja} con el nombre de la hoja de trabajo que desea leer. Puede usar la declaración "SELECT *" para seleccionar todas las columnas, o puede usar la declaración "SELECT {column name}" para seleccionar columnas específicas.

Finalmente, la conexión debe cerrarse explícitamente en el programa:

connection.Close();

Estos son los pasos básicos para leer un archivo de Excel usando OleDbConnection. Espero que esto te ayude con la lectura de archivos de Excel.

::: aviso ⚠️

NOTA : Las siguientes soluciones son solo para sistemas operativos Windows.

:::

Al usar OleDbConnection en la biblioteca de vínculos dinámicos de DLL para leer Excel, si el proveedor "Microsoft.ACE.OLEDB.12.0" no está registrado en la computadora local." se produce un error, debe instalar Microsoft Access Database Engine 2010 Redistributable.

  1. Descargue Microsoft Access Database Engine 2010 Redistributable del sitio web oficial de Microsoft: Descargue Microsoft Access Database Engine 2010 Redistributable del Official Microsoft Download Center
  2. Descarga el instalador correspondiente según tu sistema operativo y los dígitos del archivo Excel.
  3. Ejecute el instalador descargado y siga las indicaciones para instalar.
  4. Reinicie su programa y use OleDbConnection para conectarse nuevamente al archivo de Excel, y no debería aparecer el error "El proveedor "Microsoft.ACE.OLEDB.12.0" no está registrado en la computadora local".

Al usar OleDbConnection para leer archivos de Excel, debe tratar los archivos de Excel como una especie de base de datos, donde cada hoja de trabajo es una tabla de base de datos. Por lo tanto, el lenguaje de consulta SQL se puede usar para recuperar y manipular datos en archivos de Excel.

En comparación con otros complementos, la eficiencia de OleDbConnection para leer Excel es baja. Al usar OleDbConnection para leer Excel, los datos en la hoja de cálculo de Excel deben cargarse en la memoria y luego procesarse. Esto significa que, al procesar grandes cantidades de datos, es posible quedarse sin memoria y bloquear el programa. Además, al usar OleDbConnection para leer Excel, debe abrir y cerrar explícitamente la conexión, lo que aumentará la complejidad del código.

Por lo tanto, si necesita procesar una gran cantidad de datos o necesita una mayor eficiencia de lectura, se recomienda utilizar otros complementos, como NPOI y EPPlus. Estos complementos pueden manipular directamente archivos de Excel sin cargar los datos en la memoria, por lo que pueden manejar volúmenes de datos más grandes. Además, estos complementos también brindan más funciones, como crear, editar y guardar archivos de Excel, etc.

En general, OleDbConnection es un método simple pero menos eficiente para trabajar con archivos pequeños de Excel. Si necesita procesar grandes cantidades de datos o requiere una mayor eficiencia de lectura, considere usar otros complementos.

Supongo que te gusta

Origin blog.csdn.net/Documentlv/article/details/130879144
Recomendado
Clasificación