[ tdusko @ 04.01.2010. 13:47 ] @
Imam problem sledeci. Po onome kako MS kaze, kada se za godinu (skraceni zapis) upise izmedju 0 i 50, sql server to skonta kao 20xx, a kada se upise izmedju 50 i 100 on to skonta kao 19xx. E sad, excel nema tu logiku pa on kapira to uvek kao 19xx.

Ima li neko ideju kako se resava ovaj problem.

Hvala
[ Fedya @ 04.01.2010. 13:52 ] @
Kako radis komunikaciju izmedju sql-servera i excela? Ako radis neki export iz sql-a verovatno mozes izmeniti upit da ti vraca punu godinu (4 cifre).
[ tdusko @ 04.01.2010. 14:32 ] @
Ne mogu da menjam upite zato sto je uvek SELECT * FROM naziv_tabele. O cemu se tu radi? Radi se o tome sto u svojoj ASP.NET aplikaciji imam funkcionalnost da korisnik moze sam da kreira tabelu u bazi, takozvanu custom tabelu. E sad, osim toga sto on moze da kreira custom tabelu on moze i da exportuje tu istu tabelu u excel dokument. Nevolja je u tome sto jos uvek ne podrzavam mogucnost definisanja tipa kolone, tako da su sve tipa niz karaktera. Sa podacima iz tih tabela korisnik moze da manipulise u aplikaciji pisuci izraze sa sql funkcijama.

Znaci, on kreira tabelu koja ima jednu kolonu npr. "Data_from" i u toj koloni ima recimo podatak "1/1/48". On taj podatak moze negde u aplikaciji da prikaze tako sto ce reci CONVERT (datetime, Date_from, 3) i prikazace mu se 1/1/2048. Medjutim, ako hoce da eksportuje tu tabelu u excel, excel nekako sam skonta kao 1/1/1948. Export je napravljen genericki tako da uvek radi select * from naziv_tabele, prodje kroz kolekciju kolona i redova i samo prepise u excel ono sto pise u tabeli.

Excel file se kreira iz .Neta uz pomoc ComObject-a
[ mmix @ 04.01.2010. 15:38 ] @
Pa ne vidim mnogo izbora koje imas, greska je u samom dizajnu koji tretira sve kolone kao stringove i tu se gubi priroda podatka. Ti mozes da checkiras da li se neko polje parsira kao date sa DateTime.TryParse pa ako jeste, u excel celiju snimi parsirani datum sa punom godinom, medjutim taj sistem je veoma podlozan greskama u interpretaciji, npr. string "12/24" mozes da bude i razlomak a i 24.dec ove godine, "1 2 3" je mozda spisak brojeva, a parsira se kao 2. jan 2003 ili 1. februar 2003 u zavisnosti od trenutne thread kulture, itd. Moj savet, dodaj tipove ili bar checkbox koji deklarise kolonu kao datetime za pocetak.
[ tdusko @ 04.01.2010. 21:14 ] @
Hvala mmix. Tako sam i mislio samo sam se nadao da cu moci neki quick fix da proguram posto bi mi ubacivanje tipova oduzelo dosta vremena kojeg sada nemam. Probacu jos da isforsirm klijenta da importuje godinu sa sve 4 cifre.