Načtení buňky z excel   zodpovězená otázka

VB.NET, WinForms

Dobrý den,

Potřeboval bych radu ohledně načtení buňky z excelu do labelboxu ve WinForm VB.net.

Jedna se vždy o buňku C7 a je v ní vždy nějaký text.

Předem moc děkuji za rady

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Co takhle zapojit trošku iniciativy a hledat??? Strejda gůgl ví skoro všechno.

http://www.dotnetportal.cz/forum/tema/34...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Jj našel jsem, ale bohužel nejsem schopen to z toho dat dohromady.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

A co Vám není jasné nebo co přesně nemůžete dát dohromady? Pročetl jsem odkazovaný topic a více jasné to snad už ani být nemůže, máte tam k dispozici jak hotový kód, tak i detailní popis

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tady je pěkně zpracovaný článek pro čtení a zápis do Excelu.

http://www.visual-basic-tutorials.com/Wr...

Pozor jen na název listu Excelu ( List1, nebo List2, List3, ... ) !!!

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Hezký den,

zkuste knihovnu EPPlus

http://epplus.codeplex.com/

nebo NPOI

https://npoi.codeplex.com/

R.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Co je na tom nepochopitelného

Dim app As New Microsoft.Office.Interop.Excel.Application
Dim wb As Workbook = app.Workbooks.Open(IO.Path.Combine("soubor.xls"))
Dim sheet As Worksheet = wb.Worksheets(1)
Label1.Text = sheet.Range("C7").Value
nahlásit spamnahlásit spam 0 odpovědětodpovědět

Omlouvam se tedy za mou neznalost, nedokazal jsem vytvorit ten vypis do toho labelu i kdyz tedkoukam ze je to to nejjednodusi.

Kazdopadne dekuji za rady.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pokud je to novější excel tak proč nezkusil OpenXml SDK?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tady je pěkně zpracovaný článek pro čtení a zápis do Excelu.

http://www.visual-basic-tutorials.com/Wr...

Pozor jen na název listu Excelu ( List1, nebo List2, List3, ... ) !!!

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tady se zase připojují na Excel přes connection jako k db:

http://vb.net-informations.com/excel-200...

Pro novější excel opravit provider v connectionstringu:

http://www.connectionstrings.com/excel/

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Takhle by to mohlo vypadat pro jedinou buňku "C7"

        Dim PathOfWorkbook As String = "C:\Soubor.xls"
        Dim sConnection As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & PathOfWorkbook & _
            ";Extended Properties=""Excel 12.0;HDR=No;IMEX=1"""
        'sConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & PathOfWorkbook _
        '    & ";Extended Properties=""Excel 8.0;HDR=No;IMEX=1"""
        Dim oleExcelConnection As OleDbConnection = New OleDbConnection(sConnection)
        oleExcelConnection.Open()
        Dim dtTablesList As DataTable = oleExcelConnection.GetSchema("Tables")
        If dtTablesList.Rows.Count > 0 Then
            Dim sSheetName As String = dtTablesList.Rows(0)("TABLE_NAME").ToString
            Dim oleExcelCommand As OleDbCommand = oleExcelConnection.CreateCommand()
            oleExcelCommand.CommandText = "Select * From [" & sSheetName & "C7:C7]"
            oleExcelCommand.CommandType = CommandType.Text
            Dim result = oleExcelCommand.ExecuteScalar
        End If
        dtTablesList.Clear()
        dtTablesList.Dispose()
        oleExcelConnection.Close()

Případně lze i obráceně, zapsat data do buňky pomocí UPDATE commandu.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Dost možná i takhle:

http://spreadsheetpage.com/index.php/sit...

    Dim aVal = GetValue("C:\Documents and Settings\Dokumenty", "Soubor.xls", "List1", "D3")

    Private Function GetValue(ByVal path, ByVal file, ByVal sheet, ByVal ref)
        Dim xl As Object
        xl = CreateObject("Excel.Application")
        '   Retrieves a value from a closed workbook
        Dim arg As String
        '   Make sure the file exists
        If Microsoft.VisualBasic.Strings.Right(path, 1) <> "\" Then path = path & "\"
        If Dir(path & file) = "" Then
            GetValue = "File Not Found"
            Exit Function
        End If
        '   Create the argument
        Const xlA1 = 1
        Const xlR1C1 = -4150
        arg = "'" & path & "[" & file & "]" & sheet & "'!" & _
            xl.ConvertFormula(ref, xlA1, xlR1C1, True)

        '   Execute an XLM macro
        GetValue = xl.Application.ExecuteExcel4Macro(arg)
        xl.Quit()
        xl = Nothing
    End Function
nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback