You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
152 lines
5.8 KiB
152 lines
5.8 KiB
Imports Microsoft.Office.Interop
|
|
Imports System.Data.SqlClient
|
|
Imports System.Data.SqlTypes
|
|
Imports System.IO
|
|
|
|
Public Class clsexcel
|
|
Dim objexcel As Excel.Application 'Seit Office 2003
|
|
Dim docexcel As Excel.Workbook
|
|
Dim sheetexcel As Excel.Worksheet
|
|
Public Excelfile As String = ""
|
|
Dim shXL As Excel.Worksheet
|
|
Dim ds As New DataSet
|
|
Public exceldata As New DataTable
|
|
Public dokumenttypnr As Integer
|
|
Public CSVPath As String
|
|
Public Connectionstring As String
|
|
|
|
|
|
Public Sub New()
|
|
Try
|
|
Dim csv As New MyNameSpace.CSVDataAdapter(CSVPath, True, ";")
|
|
csv.Fill(ds)
|
|
exceldata = ds.Tables(0).Copy
|
|
Catch
|
|
End Try
|
|
End Sub
|
|
Public Sub New(ByVal csvpath As String)
|
|
Try
|
|
Dim csv As New MyNameSpace.CSVDataAdapter(csvpath, True, ";")
|
|
csv.Fill(ds)
|
|
exceldata = ds.Tables(0).Copy
|
|
Catch
|
|
End Try
|
|
End Sub
|
|
Public Function Check_Excel(ByVal dokumentid As String) As Boolean
|
|
Try
|
|
Dim db As New clsdb
|
|
db.Connectionstring = Connectionstring
|
|
db.Debug = False
|
|
db.Logfile = ""
|
|
Dim dt As New DataTable
|
|
dt = db.Get_Dokument(dokumentid)
|
|
For Each r As DataRow In exceldata.Rows
|
|
If r("dokumenttypnr") = dt.Rows(0).Item("dokumenttypnr").value Then
|
|
dokumenttypnr = dt.Rows(0).Item("dokumenttypnr")
|
|
Return True
|
|
Exit Function
|
|
End If
|
|
Next
|
|
Return False
|
|
Catch ex As Exception
|
|
Return False
|
|
End Try
|
|
End Function
|
|
'Public Function Get_Excel(ByVal dokumentid As String) As Boolean
|
|
' Try
|
|
' Dim dm As New DocMgmt
|
|
' Dim doc As New DocMgmt
|
|
' Dim tdoctype As New DataTable
|
|
' Dim doctype As String
|
|
' Dim dokumenttypnr As Integer
|
|
' Dim dateiformat As String
|
|
' 'BUD - 2006.10.04
|
|
' Dim istFarbigArchivieren As Boolean = False
|
|
' Dim d As New edokadb.clsDokument
|
|
' d.cpMainConnectionProvider = conn_edoka
|
|
' d.sDokumentid = New SqlString(CType(dokumentid, String))
|
|
' d.SelectOne()
|
|
' dokumenttypnr = d.iDokumenttypnr.Value
|
|
' doctype = GetDocType(d.sDokumentname.Value)
|
|
' dateiformat = doctype
|
|
' d.Dispose()
|
|
|
|
' Select Case UCase(doctype)
|
|
' Case "XLS", "XLSX", "XLSM", "XLT", "XLTX", "XLTM"
|
|
' Excelfile = Params.ExcelPath + dokumentid + "." + doctype
|
|
' End Select
|
|
|
|
' If File.Exists(Excelfile) Then
|
|
' File.Delete(Excelfile)
|
|
' End If
|
|
|
|
' If doc.Get_From_DB(dokumentid, Excelfile) = False Then
|
|
' Return True
|
|
' End If
|
|
' Catch
|
|
' Return False
|
|
' End Try
|
|
|
|
'End Function
|
|
|
|
Public Function Get_Excel_Values(ByVal dokumentid As String)
|
|
Try
|
|
' dokumenttypnr = 2421
|
|
' Excelfile = "k:\edoka\OFFEDK0002019000455228.xlsm"
|
|
'Get_Excel(dokumentid)
|
|
objexcel = New Excel.Application
|
|
sheetexcel = New Excel.Worksheet
|
|
objexcel.Workbooks.Open(Excelfile)
|
|
For Each r As DataRow In exceldata.Rows
|
|
|
|
If r("dokumenttypnr") = dokumenttypnr Then
|
|
Try
|
|
Dim wert As String
|
|
Dim sheetno As Integer
|
|
Dim rowno As Integer
|
|
Dim colno As Integer
|
|
rowno = r("rowindex")
|
|
colno = r("columnindex")
|
|
sheetno = r("sheet")
|
|
wert = objexcel.ActiveWorkbook.Sheets(sheetno).Cells(rowno, colno).value().ToString
|
|
Dokumentwert_Sichern(r("Bezeichnung") + ";" + wert, r("valuenr"), dokumentid)
|
|
Catch ex As Exception
|
|
MsgBox(ex.Message)
|
|
End Try
|
|
|
|
End If
|
|
Next
|
|
Catch
|
|
Finally
|
|
sheetexcel = Nothing
|
|
objexcel.ActiveWorkbook.Close(False)
|
|
objexcel.Quit()
|
|
objexcel = Nothing
|
|
|
|
End Try
|
|
End Function
|
|
|
|
Public Sub Dokumentwert_Sichern(ByVal wert As String, ByVal feldnr As Integer, ByVal dokumentid As String)
|
|
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
|
|
Dim conn As New SqlConnection(Connectionstring)
|
|
scmCmdToExecute.CommandText = "dbo.SP_Dokument_Information_Wert"
|
|
scmCmdToExecute.CommandType = CommandType.StoredProcedure
|
|
scmCmdToExecute.Connection = conn
|
|
scmCmdToExecute.Connection.Open()
|
|
Try
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, dokumentid))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@vorlagenfeldnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, feldnr))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@value", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, wert))
|
|
scmCmdToExecute.ExecuteNonQuery()
|
|
Catch ex As Exception
|
|
' // some error occured. Bubble it to caller and encapsulate Exception object
|
|
Throw New Exception("Dokument_Information_Wert::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
|
|
Finally
|
|
scmCmdToExecute.Connection.Close()
|
|
scmCmdToExecute.Dispose()
|
|
conn.Dispose()
|
|
End Try
|
|
End Sub
|
|
|
|
End Class
|