nacteni dat z Excelu z oblasti ktera se meni?   zodpovězená otázka

C#

Dobry den,

zapasim uz delsi dobu s problemem jak nacist data z Excelu "na tvrdo" z radku cislo 36 dolu s tim ze se pocet radku neustale meni. Nacist cely excel sheet neni problem ale jak vymezit ty oblasti? Je nutne treba projit cely excel sheet smyckou a zjistit kolik je obsazeno radku a tim zadat "range" ? nebo to jde i jinak?

DEKUJI!

OleDbDataAdapter cmd = new System.Data.OleDb.OleDbDataAdapter(
  "SELECT * FROM [" + worksheetName + "$" + range +"]", con);

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

Jak přejít na naposledy použitý řádek aktivního sešitu (i s vymazanou hodnotou!):

  ' Excel si pamatuje naposledy použitou buňku, i když její obsah vymažete, dokud sešit neuložíte! 
  ActiveWorkbook.Save ' uložit sešit
  ActiveCell.SpecialCells(xlLastCell).Select ' přejít na poslední vyplněnou buňku

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

Obsahuje-li list jen jedinou souvislou oblast,

možná by stačilo najít poslední načtený záznam...

Zhruba asi:

cmd = New System.Data.OleDb.OleDbDataAdapter("select * from [List1$]", cn)

ds = New DataSet
cmd.Fill(ds)

lastRow = ds.Tables(0).Rows.Count

HDR=Yes/No lze nastavit přímo v connectionstringu

(podle toho bude vracet posledni záznam a čísla řádků)

(jako bonus nejspíš převezme titulky sloupců)

Natvrdo...

Data z 36.řádku a prvniho sloupce:

r36c1 = ds.Tables(0).Rows(36).Item(0)

Tuším,že lze využít v selectu místo adresy Range

i pojmenované Range, příp. to může být užitečné.

...

Budete-li přistupovat k datům přes objektový model

excelu, přidávám i tipy na získání poslední buňky:

http://excelplus.net/forum/viewthread.ph...

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