Čtení stringu z XLS - problém   zodpovězená otázka

VB.NET, ADO.NET

Doufám že mne začátečníka tady zase nebudete kamenovat za mou neznalost.

Přes OleDB mám otevřen XLS soubor a načítám jej do tabulky DTA.

V XLS jsou tato data:

zak.číslo hod

11252 27

11266 16

12016 32

20001 5

D 32

nemoc 24

Načítám to takto:

cn.Open()
                command.Connection = cn
                command.CommandText = "SELECT  * FROM [List1$B34:C43]"
                Dim dtA As New System.Data.DataTable
                dtA.Columns.Add("Zak#číslo")
                dtA.Columns.Add("Hod")
                dtA.Columns(0).DataType = System.Type.GetType("System.String")
                dtA.Columns(3).DataType = System.Type.GetType("System.Decimal")
dtA.Load(command.ExecuteReader(CommandBehavior.CloseConnection))

Výsledkem je, že se do DTA načte 6 řádků, ale ve sloupci zak.číslo nejsou načteny hodnoty "D" respektive "nemoc".

Poradíte mi v čem je problém, případně nastíníte řešení?

Pokoušel jsem se před plněním DTA definvat datovétypy sloupců, ale to nepomohlo.

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

Zdravim,

Toto by mal riesit parameter IMEX=1, ktory treba pridat do Extended properties vasho connection stringu pre OleDb.

[napriklad]

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;

Extended Properties="Excel 8.0;HDR=Yes;IMEX=1";

Viac info sa da najst na http://www.connectionstrings.com/excel

Hope it helps

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

Děkuji, bylo to ono.

Pro další kteří to budou zkoušet. Dejte si pozor ma počet uvozovek ve výrazu. Dvě nebo i tři uvozovky v řádku nejsou samoúčelné a je je nutno dodržet.

cn = New System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;" + "data source=" + JmenoCestyXLS + "\" + SouborExcel + ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""")

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

Nemáte ještě radu pro sloupec který je v tabulce definován jako typ Decimal a v buňce která se čte z excelu není žádná hodnota (prázdná buňka). Chtěl bych aby se to považovalo za nulu.

Je nějaké řešení?

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