Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Otvaranje excel-a u vb.net

[es] :: .NET :: Otvaranje excel-a u vb.net

[ Pregleda: 1846 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

kincer

Član broj: 83682
Poruke: 30
*.teol.net.



Profil

icon Otvaranje excel-a u vb.net21.02.2010. u 13:44 - pre 172 meseci
Koristim ovaj kod:
---------------------------------------------------------------------------
Dim ApExcel As Object
Set ApExcel = CreateObject("Excel.application") 'Creates an object
ApExcel.Visible = True ' So you can see Excel
ApExcel.Workbooks.Add("C:\Proba.xls") 'Adds a new book.
-------------------------------------------------------------------------------
Je li moguce otvoriti ovaj dokument u objektu vb?
Ne treba mi uopste excel-ov okvir?
Odnosno , kako se dokument iz excela smjesta u neki objekat na formi?






 
Odgovor na temu

MarkoBalkan

Član broj: 141124
Poruke: 1624
..131.160-dsl.net.metronet.hr.



+19 Profil

icon Re: Otvaranje excel-a u vb.net22.02.2010. u 12:46 - pre 172 meseci
evo primjer

http://csharp.net-informations.com/excel/csharp-format-excel.htm
ovo je jedan dio code-a sa linka

Code:

           Excel.Application xlApp ;
            Excel.Workbook xlWorkBook ;
            Excel.Worksheet xlWorkSheet ;
            object misValue = System.Reflection.Missing.Value;
            Excel.Range chartRange ;

            xlApp = new Excel.ApplicationClass();
            xlWorkBook = xlApp.Workbooks.Add(misValue);
            xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

            //add data 
            xlWorkSheet.Cells[4, 2] = "";
            xlWorkSheet.Cells[4, 3] = "Student1";
            xlWorkSheet.Cells[4, 4] = "Student2";
            xlWorkSheet.Cells[4, 5] = "Student3";



umjesto xlWorkSheet.Cells[4, 3] = "Student1";

možeš staviti

xlWorkSheet.Cells[4, 3] =textBox1.Text;

i obrnuto

drugi primjer

http://www.codeproject.com/KB/cs/Simple_Excel_Automation.aspx
 
Odgovor na temu

kincer

Član broj: 83682
Poruke: 30
*.teol.net.



Profil

icon Re: Otvaranje excel-a u vb.net22.02.2010. u 15:22 - pre 172 meseci
Ovo je ok , ali :
koristim makroe u excelu i nastojim da kroz vb otvirim excel
da bi pristupio kreiranom makrou u excelovom dokumentu ,
a da se pri tome ne vidi uopste excelova forma , odnosno da
je prekrijem labelima . Excel mi pravi proracune , a sve naizgled
djeluje da radi pod visual basicom.
To mi je jedino resenje.


 
Odgovor na temu

dili900
FAdil Sabani

Član broj: 190681
Poruke: 13
91.187.125.*



Profil

icon Re: Otvaranje excel-a u vb.net21.03.2010. u 12:25 - pre 171 meseci
Nije mi jasno za kakve proracune koristis Excel?
Ako koristis za aritmeticke funkcije (bilo da su kompl.ili nekomplikovane ) postoji OCX Kntrola msscript.ocx koja ima ne samo funkcije za izracunavanje izraza nego i izvrsavanje VB koda.
A u .Net je malo tesko raditi sa OCX biblioteke tako da sam nasao u net-u (i malo modifikacija naravno) koja radi iracunavanje matamtickih izraza. To je:
Module EvalExp
Public m_Primatives As Hashtable

Private Enum Precedence
None = 11
Unary = 10 ' Not actually used.
Power = 9
Times = 8
Div = 7
IntDiv = 6
Modulus = 5
Plus = 4
End Enum

' Evaluate the expression.
Public Function EvaluateExpression(ByVal expression As String) As Double
Dim expr As String
Dim is_unary As Boolean
Dim next_unary As Boolean
Dim parens As Integer
Dim expr_len As Integer
Dim ch As String
Dim lexpr As String
Dim rexpr As String
Dim best_pos As Integer
Dim best_prec As Precedence

' Remove all spaces.
expr = expression.Replace(" ", "")
expr_len = Len(expr)
If expr_len = 0 Then Return 0

' If we find + or - now, it is a unary operator.
is_unary = True

' So far we have nothing.
best_prec = Precedence.None

' Find the operator with the lowest precedence.
' Look for places where there are no open
' parentheses.
For pos As Integer = 0 To expr_len - 1
' Examine the next character.
ch = expr.Substring(pos, 1)

' Assume we will not find an operator. In
' that case, the next operator will not
' be unary.
next_unary = False

If ch = " " Then
' Just skip spaces. We keep them here
' to make the error messages easier to
ElseIf ch = "(" Then
' Increase the open parentheses count.
parens += 1

' A + or - after "(" is unary.
next_unary = True
ElseIf ch = ")" Then
' Decrease the open parentheses count.
parens -= 1

' An operator after ")" is not unary.
next_unary = False

' If parens < 0, too many ')'s.
If parens < 0 Then
Throw New FormatException( _
"Too many close parentheses in '" & _
expression & "'")
End If
ElseIf parens = 0 Then
' See if this is an operator.
If ch = "^" Or ch = "*" Or _
ch = "/" Or ch = "\" Or _
ch = "%" Or ch = "+" Or _
ch = "-" _
Then
' An operator after an operator
' is unary.
next_unary = True

' See if this operator has higher
' precedence than the current one.
Select Case ch
Case "^"
If best_prec >= Precedence.Power Then
best_prec = Precedence.Power
best_pos = pos
End If

Case "*", "/"
If best_prec >= Precedence.Times Then
best_prec = Precedence.Times
best_pos = pos
End If

Case "\"
If best_prec >= Precedence.IntDiv Then
best_prec = Precedence.IntDiv
best_pos = pos
End If

Case "%"
If best_prec >= Precedence.Modulus Then
best_prec = Precedence.Modulus
best_pos = pos
End If

Case "+", "-"
' Ignore unary operators
' for now.
If (Not is_unary) And _
best_prec >= Precedence.Plus _
Then
best_prec = Precedence.Plus
best_pos = pos
End If
End Select
End If
End If
is_unary = next_unary
Next pos

' If the parentheses count is not zero,
' there's a ')' missing.
If parens <> 0 Then
Throw New FormatException( _
"Missing close parenthesis in '" & _
expression & "'")
End If

' Hopefully we have the operator.
If best_prec < Precedence.None Then
lexpr = expr.Substring(0, best_pos)
rexpr = expr.Substring(best_pos + 1)
Select Case expr.Substring(best_pos, 1)
Case "^"
Return _
EvaluateExpression(lexpr) ^ _
EvaluateExpression(rexpr)
Case "*"
Return _
EvaluateExpression(lexpr) * _
EvaluateExpression(rexpr)
Case "/"
Return _
EvaluateExpression(lexpr) / _
EvaluateExpression(rexpr)
Case "\"
Return _
CLng(EvaluateExpression(lexpr)) \ _
CLng(EvaluateExpression(rexpr))
Case "%"
Return _
EvaluateExpression(lexpr) Mod _
EvaluateExpression(rexpr)
Case "+"
Return _
EvaluateExpression(lexpr) + _
EvaluateExpression(rexpr)
Case "-"
Return _
EvaluateExpression(lexpr) - _
EvaluateExpression(rexpr)
End Select
End If

' If we do not yet have an operator, there
' are several possibilities:
'
' 1. expr is (expr2) for some expr2.
' 2. expr is -expr2 or +expr2 for some expr2.
' 3. expr is Fun(expr2) for a function Fun.
' 4. expr is a primitive.
' 5. It's a literal like "3.14159".

' Look for (expr2).
If expr.StartsWith("(") And expr.EndsWith(")") Then
' Remove the parentheses.
Return EvaluateExpression(expr.Substring(1, expr_len - 2))
Exit Function
End If

' Look for -expr2.
If expr.StartsWith("-") Then
Return -EvaluateExpression(expr.Substring(1))
End If

' Look for +expr2.
If expr.StartsWith("+") Then
Return EvaluateExpression(expr.Substring(2))
End If

' Look for Fun(expr2).
If expr_len > 5 And expr.EndsWith(")") Then
' Find the first (.
Dim paren_pos As Integer = expr.IndexOf("(")
If paren_pos > 0 Then
' See what the function is.
lexpr = expr.Substring(0, paren_pos)
rexpr = expr.Substring(paren_pos + 1, expr_len - paren_pos - 2)
Select Case lexpr.ToLower
Case "sin"
Return Math.Sin(EvaluateExpression(rexpr))
Case "cos"
Return Math.Cos(EvaluateExpression(rexpr))
Case "tan"
Return Math.Tan(EvaluateExpression(rexpr))
Case "sqrt"
Return Math.Sqrt(EvaluateExpression(rexpr))
Case "factorial"
Return Factorial(EvaluateExpression(rexpr))
' Add other functions (including
' program-defined functions) here.
End Select
End If
End If

' See if it's a primitive.
If Not m_Primatives Is Nothing Then


If m_Primatives.Contains(expr) Then
' Return the corresponding value,
' converted into a Double.
Try
' Try to convert the expression into a value.
Dim value As Double = _
Double.Parse(m_Primatives.Item(expr).ToString)
Return value
Catch ex As Exception
Throw New FormatException( _
"Primative '" & expr & _
"' has value '" & _
m_Primatives.Item(expr).ToString & _
"' which is not a Double.")
End Try
End If
End If
' It must be a literal like "2.71828".
Try
' Try to convert the expression into a Double.
Dim value As Double = Double.Parse(expr)
Return value
Catch ex As Exception
Throw New FormatException( _
"Error evaluating '" & expression & _
"' as a constant.")
End Try
End Function

' Return the factorial of the expression.
Private Function Factorial(ByVal value As Double) As Double
Dim result As Double

' Make sure the value is an integer.
If CLng(value) <> value Then
Throw New ArgumentException( _
"Parameter to Factorial function must be an integer in Factorial(" & _
Format$(value) & ")")
End If

result = 1
Do While value > 1
result = result * value
value = value - 1
Loop
Return result
End Function
End Module

Funkcija se postavlja u poseban modul, (Zbog bolje organizacije projekata), a m_Primatives je Hash tabla u kojoj mozes
da zadas ime konstante, vrednost , i da koristis tu konstantu u matem.izraz na primer:
m_Primatives=new HashTable
m_Primatives.add("diamater",12)
EvaluateExpression("2*Diameter+4") ' daje vrednost 28, sto znaci da mozes da kosristis formule u tvoje aplikaciju.
A sto se tice Excela ranije je mogao da se ubaci preko Ole Containea as sad sa .Net-om nisam video nesto tako, ali u svemu mnogo sporo se otvara Excel tako da ako je mnogo porebno treba da koristis Excel.

 
Odgovor na temu

[es] :: .NET :: Otvaranje excel-a u vb.net

[ Pregleda: 1846 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.