BF: Všechno šlape až do dne, kdy máš víc USB zařízení než je zdraví rozumné. Klávesnice, myš, mikrofon, RGB lampa č. 1, RGB lampa č. 2, jedna webkamera, druhá webkamera (protože jiný úhel, že ..), Backlight LED RGB pásky na monitor, větrák, podsvícená podložka pod myš, tři externí HDD, víceportový adaptér do kterého je zapojený HUB PORT 2 a ten krmí HUB PORT 3, USB repráčky.
A pak to přijde: "Nemám žádný volný port USB!"
PCIE slot kam bych mohl zapojit dejme tomu "4x3.1 USB" ? Zabrala ho velikost kolosalního GPU, který žere víc wattů jak dětský tábor.
Tak co teď? Jasně, je tu HUB, ale jaký? Ty levné jsou spíš loterie. Maximálně jedno slušný Ačko, těch je ale hodně ruzných typů kvality a jsou často omezené na [USB-A USB 2.0] kvality odpovidající plastikové hračce z Kinder vajíčka. Co tedy dělat. Odpověd je jednoduchá, použijte USB Type-E.
Přejít na článek
Na jednoduché čítanie dát z Excelu môžeš použiť ADO.NET (napr. Microsoft Jet OLE DB). Ak tam máš niečo komplikovanejšie, tak si užiješ s dátovými typmi.
Existujú aj knižnice, ktoré nepotrebujú pre prístup k dátam v Exceli nainštalovaný samotný Excel (napr. Excel Data Reader).
S novšou verziou Office môžeš použiť Open XML SDK - na MSDN je k tomu veľa príkladov.
Dá sa to samozrejme riešiť aj cez COM tak, ako to je v tom odkaze, ktorý si napísal. V ASP.NET-e je to síce Microsoftom oficiálne neodporúčaný spôsob, ale keď akceptuješ riziká a dáš si pozor na pár vecí, tak sa to dá. Ten príklad v tom odkaze si ale na tých pár vecí pozor nedáva, takže na tvojom mieste by som skúsil niektorú z predchádzajúcich možností.
Mohl bych prosím poprosit o nějaký krátký příklad?
Píšem priamo sem, tak tam môžu byť chyby. Vychádzal som z príkladov na MSDN. Je to klasický ADO.NET kód:
Prípadne ešte môžeš použiť Linq to Excel.
Použil jsem nakonec tvůj kód, každopádně kde je ta výstupní hodnota? Je to v proměnné value? Jak se pohybuji mezi bunkami? Opravdu jsem z toho uplně blbej...
Prístup pomocou reader-a je efektívny spôsob, ako prečítať postupne všetky riadky. Po posunutí reader-a volaním metódy Read máš prístup k hodnotám v nasledujúcom riadku. Metódou GetValue sa dostaneš k hodnote v požadovanom stĺpci. Sú aj metódy GetInt32, GetString a pod., pomocou ktorých sa tiež dostaneš k hodnote daného typu (v prípade nesprávneho typu to skončí výnimkou).
V tom príklade je vo value hodnota z prvého stĺpca. Keď si to odkrokuješ vnútri toho cyklu, tak si môžeš pozrieť, čo vráti napr. reader.GetValue(1), akého typu, aký je počet polí v reader-i a pod. Ak by si si prečítal tie odkazy, tak by tam zrejme bolo aj to, ako sa dostať k schéme tabuľky, ako prečítať údaje z nejakého rozsahu namiesto celého hárku, atď.
Ďalšia možnosť je naplniť to do DataTable, ako to bolo v iných príkladoch. DataTable je taká malá jadrová elektráreň, ktorá sa hodí keď chceš pracovať s dátami (meniť ich) oddelene od databázy. Pre čítanie je lepší ten DataReader.