Soporte en OC carar lisado con gem box

This commit is contained in:
Raul Pimienta
2019-09-03 16:46:45 -07:00
parent 58ca12afb9
commit 5d9e93d0d4

View File

@@ -4,6 +4,7 @@ Option Strict On
Imports System.Data Imports System.Data
Imports Extensiones Imports Extensiones
Imports System.IO Imports System.IO
Imports GemBox.Spreadsheet
Partial Class OC Partial Class OC
Inherits ClsPaginas Inherits ClsPaginas
@@ -5831,31 +5832,80 @@ Partial Class OC
End If End If
End Sub End Sub
Private Function ReadExcelFile(ByVal flatFilePath As String, ByVal firstRowHasHeaders As Boolean) As DataTable
SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet)
Dim excelFile As ExcelFile = ExcelFile.Load(flatFilePath)
Dim unnamed As Integer = 0
Dim cols As Integer
Dim columns As String()
Dim curRow As Integer = 0
Dim curCol As Integer = 0
Dim dataTable As DataTable = New DataTable()
Dim worksheet As ExcelWorksheet = excelFile.Worksheets(0)
For cols = 0 To worksheet.Rows(0).AllocatedCells.Count - 1
If firstRowHasHeaders Then
If worksheet.Rows(0).Cells(cols).Value IsNot Nothing Then
dataTable.Columns.Add(worksheet.Rows(0).Cells(cols).Value.ToString())
Else
dataTable.Columns.Add("Unnamed Column " & (System.Threading.Interlocked.Increment(unnamed)))
End If
curRow = 1
Else
dataTable.Columns.Add("Column " & (cols + 1))
End If
Next
While curRow < worksheet.Rows.Count
columns = New String(cols - 1) {}
For curCol = 0 To cols - 1
If worksheet.Rows(curRow).Cells(curCol).Value Is Nothing Then
columns(curCol) = ""
Else
columns(curCol) = worksheet.Rows(curRow).Cells(curCol).Value.ToString()
End If
Next
dataTable.Rows.Add(columns)
curRow += 1
End While
Return dataTable
End Function
Private Sub CargarArchivo(Ruta As String, FileName As String, Tipo As String) Private Sub CargarArchivo(Ruta As String, FileName As String, Tipo As String)
Dim dt As New DataTable Dim dt As New DataTable
Dim Conexion As Odbc.OdbcConnection = Nothing dt = ReadExcelFile(Ruta + FileName, True)
Dim ErrorArchivo = False Dim ErrorArchivo = False
Try
Select Case Tipo 'Dim Conexion As Odbc.OdbcConnection = Nothing
Case "EXCEL" 'Try
Conexion = New Odbc.OdbcConnection("Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" + Ruta + FileName + ";") ' Select Case Tipo
Conexion.Open() ' Case "EXCEL"
Dim cmd = Conexion.CreateCommand() ' Conexion = New Odbc.OdbcConnection("Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" + Ruta + FileName + ";")
cmd.CommandType = CommandType.Text ' Conexion.Open()
cmd.CommandText = "SELECT * FROM [Hoja1$]" ' Dim cmd = Conexion.CreateCommand()
Dim DataAdapter = New Odbc.OdbcDataAdapter(cmd) ' cmd.CommandType = CommandType.Text
DataAdapter.Fill(dt) ' cmd.CommandText = "SELECT * FROM [Hoja1$]"
Case Else ' Dim DataAdapter = New Odbc.OdbcDataAdapter(cmd)
Alert("El archivo no tiene el formato correcto", TipoMensaje.MsgError) ' DataAdapter.Fill(dt)
Exit Sub ' Case Else
End Select ' Alert("El archivo no tiene el formato correcto", TipoMensaje.MsgError)
Catch ex As Exception ' Exit Sub
ErrorArchivo = True ' End Select
OnError("Ocurrio un error al leer el archivo <br/>" & ex.Message, ex) 'Catch ex As Exception
End Try ' ErrorArchivo = True
Conexion.Close() ' OnError("Ocurrio un error al leer el archivo <br/>" & ex.Message, ex)
If Not ErrorArchivo Then 'End Try
'Conexion.Close()
If Not ErrorArchivo AndAlso dt IsNot Nothing Then
If Not dt.Columns(0).ColumnName = "Cantidad" Then If Not dt.Columns(0).ColumnName = "Cantidad" Then
Alert("El nombre de la primera columna debe ser 'Cantidad'.Favor de corregirlo", TipoMensaje.MsgError) Alert("El nombre de la primera columna debe ser 'Cantidad'.Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub Exit Sub