Código fuente de producción de tablas
Importar sistema. Image Orthicon (Image Orthicon)
Importar sistema. Datos
Sistema de importación.Data.OleDb
El público debe heredar la clase ExcelHelper
Función privada compartida buildConnStr(excelFilePath As String) como cadena
Atenuar excelFileInfo como nuevo sistema IO.FileInfo(excelFilePath)
Dim construido como String
Si excelFileInfo.extended = ".xlsx" entonces
constr = String. "Provider=Microsoft.ACE.oledb.12.0;DataSource={0};Propiedades extendidas='Excel 12.0 Xml;HDR=Yes;IMEX=1'",excelFilePath)
Otro
p >constr = Formato de cadena("Provider=Microsoft.Jet.OLEDB.4.0DataSource={0};Propiedades extendidas='Excel 8.0HDR=YES;IMEX=1'",excelFilePath)
Finalizar si...
Devolver construcción
Finalizar función
Importar tabla de datos a Excel
Como valor booleano público compartido. DataTable2Excel(dt como DataTable, excelFilePath como String)
Si el archivo existe (excelFilePath)
Thrownnewexception("¡El archivo ya existe!")
Finaliza si
Si dt.TableName.Trim.Length = 0 o dt.TableName.ToLower = "table" entonces
dt>p>
Terminará si...
Dim colCount como Integer = dt. Número de columnas
Dim pa(colCount - 1) como OleDbParameter
dim tableStructStr As String = "Crear tabla" & dt. Nombre de tabla & amp"("
dim connString As String = buildConnStr(excelFilePath)
Atenuar objconn como nuevo OleDbConnection(connString)
Atenuar objcmd como nuevo OleDbCommand
objcmd. concatenation = objconn
Atenuar lista de tipos de datos como nueva lista de matrices
lista de tipos de datos add("system.decimal")
p>DataTypeList.Add("System.Double")
DataTypeList.Add("System.Int16")
DataTypeList "System.Int32")
Lista de tipos de datos.Add("System.Single")
Dim i es un número entero = 0
Como DataColumn en dt.
Si el tipo de datos es Lista.
IndexOf(col.GetType.ToString)>luego 0
pa(I)= Nuevo parámetro oledb(" @ " & amp; col.ColumnName, OleDbType. Double)
objcmd . Parámetro. Add(pa(i))
Si i + 1 = colCount, entonces
tableStructStr+= col . nombre de columna+" double)"
Otro<. /p>
tableStructStr+= col . nombre de columna+" double,"
Terminará si...
Otros
pa(I)= Nuevo parámetro oledb("@" & col.ColumnName, OleDbType.VarChar)
objcmd. Parámetro. Agregar(pa(i))
Si i + 1 = colCount, entonces
tableStructStr+= col nombre de columna+" VarChar)"
Otro<. /p>
tableStructStr+= col . nombre de columna+" VarChar,"
Terminará si...
Terminará si...
i += 1
Entonces
prueba
objcmd. CommandText = tableStructStr
if objconn. estado = estado de la conexión. Cierra y luego cierra. open()
objcmd. ExecuteNonQuery()
Capturar ex como excepción
Lanzar ex
Finalizar intento
dim Insertar SQL _ 1 como cadena = " Insertar en "+dt. TableName +"("
Dim InsertSql_2 As String = " Values("
Dim InsertSql As String = " "
Para colID como entero = 0 a colCount - 1 Paso 1
Si colID + 1 = colCount, entonces
InsertSql_1 += dt.column(colID)&")"
InsertSql_2 += " @" + dt. column(colID)." "
Otro
InsertSql_1 += dt. column(colID)."
InsertSql_2 += "@ " + dt.Column(colID).ColumnName+","
Terminará si...
Entonces
insertar SQL = insertar SQL _ 1+insertar SQL _ 2
Para ID de fila es Entero = 0 a dt recuento de filas - 1 paso 1
Para colID = 0 a dt. Número de columnas - 1
>Si pa(E.C.).Double y dt.tostring.trim = "" entonces
pa(E. coli valor = 0
Otro
). pa(valor de E. coli).
rows(rowID)(colID). tostring . trim
Finalizar si...
Entonces
pruebe
objcmd. CommandText = InsertSql
objcmd. ExecuteNonQuery()
Capturar ex como excepción
Lanzar ex
Finalizar el intento
Luego
Intentar
Si objconn. estado = estado de la conexión. Luego abra objconn. Cerrar()
Capturar exp como excepción
Lanzar experiencia
Finalizar intento
Devolver verdadero
Finalizar función
Obtener lista de tablas de datos de archivos de Excel
Función pública compartida GetExcelTables(ExcelFileName as String) como ArrayList
Transformar la hoja de cálculo en una nueva lista (cadena)
p>
ConnectionOpen()
dim dt As DataTable = conn . GetOleDbSchemaTable(OleDbSchemaGuid. Table, None)
Para cada r en dt. OK
Sábanas. Add(r("nombre de tabla"))
Luego
Cerrar conexión()
Orden de devolución
Atenuar dt como tabla de datos
Si no es un archivo. Si (ExcelFileName) existe
Thrownnewexception("El archivo Excel especificado no existe")
No devuelve ningún contenido
Terminará si...
Atenuar tableList como nueva lista de matriz
Usar conn como conexión oledb = Nueva conexión oledb(buildConnStr(nombre de archivo de Excel))
Probar
Conexión abierta ()
dt = conn . GetOleDbSchemaTable(OleDbSchemaGuid.Tables, New Object(){Ninguno, Ninguno, Ninguno, "TABLE"})
Capturar ex como excepción
Lanzar ex
Finalizar intento
Porque I es un número entero = 0 a dt. Número de filas. Count - 1
Dim tableName es String = dt. filas(I)(2). tostring . trimend(" $ ")
Si lista de tabla. índice de (nombre de tabla)<0 luego la lista de tablas. Agregar (nombre de la tabla)
Luego
Finalizar uso
Volver a la lista de tablas
Finalizar función
Excel Exportación de archivos a tabla de datos (primera fila utilizada como encabezado)
Función pública compartida InputFromExcel(ExcelFileName como cadena, TableName como cadena) como tabla de datos
Si no es un archivo. Si (ExcelFileName) existe
Thrownnewexception("El archivo Excel especificado no existe")
Si... terminará
lista de tabla tenue como ArrayList = obtener tablas de Excel (nombre de archivo de Excel)
Si la lista de tablas.
index of(TableName)<entonces 0
TableName = table list(0) tostring
finalizará si...
Atenuar dt como. Nueva tabla de datos
Atenuar conn como nueva conexión oledb(buildConnStr(nombre de archivo de Excel))
atenuar cmd como nuevo comando oledb(" seleccionar * de[" & nombre de tabla & "$ ]",conn)'¿La depuración requiere $?
Atenuar el adaptador como nuevo OleDbDataAdapter(cmd)
Pruebe
Si conn.State = ConnectionState. Cierre y luego conecteOpen()
Adaptador. Fill(dt)
Capturar ex como excepción
Lanzar ex
Finalmente
Si conn.State = ConnectionState. Ábrelo y conéctate. Cerrar()
Finalizar intento
Volver a dt
Finalizar función
Consultar datos en archivo excel
Función pública compartida ReadOneDataFromExcel (el nombre de archivo de Excel es una cadena, TableName es una cadena, SQL es una cadena) como un objeto
Si no es un archivo. Si (ExcelFileName) existe
Thrownnewexception("El archivo Excel especificado no existe")
Si... terminará
lista de tabla tenue como ArrayList = obtener tablas de Excel (nombre de archivo de Excel)
Si la lista de tablas. index of(TableName)<entonces 0
TableName = table list(0) tostring
finalizará si...
Atenuar dt como. Nueva tabla de datos
Dim conn como nueva conexión oledb (buildConnStr(nombre de archivo de Excel))
Dimcmd como nuevo comando ole (SQL, conn) '¿La depuración requiere $?
Atenuar ret como objeto
Intentar
Si conn.State = ConnectionState. Cierre, luego connectOpen()
ret = cmd. ExecuteScalar()
Capturar ex como excepción
Lanzar ex
Finalmente
Si conn.State = ConnectionState. Ábrelo y conéctate. Cerrar()
Finalizar intento
Regresar ret
Finalizar función
Obtener el nombre de la columna de la lista de datos de la tabla de datos especificada en el Archivo de Excel.
Función pública compartida GetExcelTableColumns(nombre de archivo de Excel como cadena, TableName como cadena) como ArrayList
Atenuar dt como tabla de datos
Si no es un archivo.
Si (ExcelFileName) existe
Thrownnewexception("El archivo Excel especificado no existe")
No devuelve ningún contenido
Terminará si...
Atenuar ColList como nueva lista de matriz
Usar conn como conexión oledb = Nueva conexión oledb(buildConnStr(nombre de archivo de Excel))
Probar
Conexión abierta ()
dt = conn . GetOleDbSchemaTable(OleDbSchemaGuid.Columns, New Object() {Nada, Nada, TableName, Nothing})
Capturar ex como excepción
Lanzar ex
Finalizar intento
Porque I es un número entero = 0 a dt. Número de filas. Recuento - 1
Dim ColName = dt. Fila(I)("Nombre de columna"). ToString(). trim()
Collister. Agregar (nombre de columna)
Luego
Finalizar uso
Volver a la lista de colisiones
Finalizar función
Fin clase