Red de conocimiento informático - Problemas con los teléfonos móviles - Código fuente de producción de tablas

Código fuente de producción de tablas

Acabo de escribir una clase auxiliar, prueba DataTable2Exce (el código de este método es el siguiente:

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.Int64")

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