Red de conocimiento informático - Problemas con los teléfonos móviles - Código fuente de prescripción de medicina tradicional china de Vb

Código fuente de prescripción de medicina tradicional china de Vb

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 un 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 la 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 matriz

datatype list.add("System.Decimal")

DataTypeList.Add("System.Double")

DataTypeList.Add("System.Int16")

DataTypeList System. tipos de datos. Agregar("System.

Int64")

Lista de tipos de datos.Add("System.Single")

Dim i para Integer = 0

Como DataColumn en dt.Column

Si la lista de tipos de datos. IndexOf(col.GetType.ToString)> entonces 0

pa(I)= Nuevo parámetro oledb("@" amp;col.ColumnName,OleDbType.double veces)

objcmd.Add(pa(i))

Si i 1 = colCount, entonces

tableStructStr = col nombre de columna " double) "<. /p>

Otro

tableStructStr = col . nombre de columna "doble",

Terminará si...

Otro

pa(I)= Nuevo parámetro oledb(" @ " amp;col.ColumnName,OleDbType.VarChar)

objcmd.Add(pa(i))

Si 1 = colCount, luego

tableStructStr = col. nombre de columna "VarChar)"

Otro

tableStructStr = col. nombre de columna "VarChar",< /p. >

Terminará si...

Terminará si...

i = 1

Entonces

Pruebe

objcmd.CommandText = tableStructStr

if objconn.closed.open()

ExecuteNonQuery()

Capturar ex como excepción

Lanzar ex

Finalizar intento

dim Insertar SQL _ 1 como cadena = " Insertar en " dtNombreTabla "("

Dim. InsertSql_2 As String = " Values("

Dim InsertSql As String = " "

Para colID Como entero = 0 a colCount - 1 Paso 1

Si colID 1 = colCount, luego

InsertSql_1 = dt. columna(colID). Nombre de columna amp")"

InsertSql_2 = "@" dt. columna(colID). Nombre de columna " "

Otro

InsertSql_1 = dt. columna(colID). Nombre de columna ","

InsertSql_2 = "@" dt. columna(colID). Nombre de columna ","

Terminará si...

Entonces

insertar SQL = insertar SQL _ 1 insertar SQL _ 2

Para ID de fila es Entero = 0 a dt. rows.count - 1 paso 1

Para colID = 0 a dt.

Número de columnas - 1

Si pa(E. coli). TipoDb = TipoDb. Doble y dt. filas(rowID)(colID). tostring . trim = " "Entonces

pa(E. coli). Valor = 0

Otro

pa (E. coli). valor = dt. 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

Ajustar la hoja de trabajo en una nueva lista (cadena)

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 título)

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) lt; luego 0

TableName = table list(0)

Terminará si...

Dim 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[" amp;nombre de tabla amp" $] ", 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) lt; luego 0

TableName = table list(0)

Terminará si...

Dim 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. Close()

Finalizar intento

Devolver 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