VB.NET čítanie z excelu   otázka

VB.NET

Ahojte

Chcel by som sa opýtať mám problém pri načítaní dát z excelu do Listview prvý nenačíta mi celý stlpec ale iba prvú hodnotu ako zadám rozsah aby mi načítalo celý stĺpec ?

Plus nefunguje mi celkom dobre lisview item 2 prvý krát my hodnotu načíta no druhý krát už nie Vopred ďakujem za odpovede.

workbook = APP.Workbooks­.Open("C:\User­s\sipos_an\Des­ktop\test01.xlsx")

worksheet = workbook.Workshe­ets("sheet1")

Dim i As Excel.Range

i = worksheet.UsedRange

ListView1.Item­s.Add(i.Cells( , 1).value)

ListView1.Item­s(2).SubItems­.Add(i.Cells( , 2).value)

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

Projít řádky Range cyklem, za každou buňku v prvním řádku předpokládaném jako záhlaví přidat sloupec do listview, od druhého řádku přidat Item do listview za první buňku v řádku a za každou další buňku přidat SubItem k vytvořenému Item.

Asi něco ve stylu :

rng = worksheet.UsedRange
For r as Integer = 1 to rng.Rows.Count
     Dim lvItem As ListViewItem
     For c = 1 To rng.Columns.Count   
        If r = 1 then
            ListView1.Columns.Add(rng.Cells(r ,c))
        Else
            If c = 1 Then
                lvItem = ListView1.Items.Add(rng.Cells(r ,c))
            Else
                lvItem.SubItems.Add(rng.Cells(r ,c))
            End If
        End if
     Next
Next
ListView1.View = Windows.Forms.View.Details

Formátování a zarovnání hodnot ve sloupcích listview budeš muset doladit, také se budeš muset u listview poprat se seřazením sloupců, kde jsou čísla či datumy.

...

Nechci napadat původní ideu, ale možná by bylo dobré vyzkoušet místo listview DataGridView a k tabulce excelu se připojit pomocí OleDbConnection a načtenou tabulku předat do DataSource datagridview, může to ušetřit vela roboty, ale těžko posoudit ...

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

Ahoj

Velice pekne ďakujem je možnosť v datagridview zobraziť iba dva konkrétne stlpce a aj upravovať ich ?

Lebo ja potrebujem z excelu zobraziť iba dva konkrétne

stlpce no je ich tam asi 6-7.

Ďakujem

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

Upravené hodnoty budete chtít ukládat zpět do toho listu excelu?

V listview lze upravovat ve výchozím stavu pouze první sloupec,

ale možnost editovat další sloupce byla možná pomocí Win32 API.

Možná to už vylepšili, ale nemyslím si...

Datagridview umožňuje editovat všechny sloupce, možnost nastavit

i některé sloupce pouze pro čtení. Zobrazit lze 2 či 6-7 sloupců

dle potřeby, myslíte-li tím skrytí sloupce, to bude také možné.

Lze ovlivnit jaký prvek se zobrazí pro editaci, např. pro datum

zobrazit datetimepicker, ve sloupci mít checkboxy nebo comboboxy

a omezit hodnotu na obsah comboboxu. K dispozici jsou barvičky

pozadí buněk a písma, snad i to ohraničení by se dalo zvládnout.

Taky lze nastavit formát čísla, datumu aj. hodnot ve sloupci.

Sloupce je možné seřadit, ikony seřazení v záhlaví automaticky.

Lze mít v buňce ikonu nebo do ní vložit obrázek.

Listview nebo datagridview?

Zkuste obojí a uvidíte, co si zamilujete. Kdyby to byly dvě ženský,

tak by Vám to projít nemuselo,ale v tomto případě žádné obavy. :)

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