[ erkan @ 17.03.2004. 08:11 ] @
pozdrav svima.
Koristim excell tabelu za smjestanje obradjenih podataka iz baze.
Excel tabelu snimim kao imeTabele.xls u nekom folderu, medjutim ne znam
kako da uvucem tabelu i prikazem je u (ASP) projektu.

Kada sam to radio sa chartovima, snimio sam rezultat kako gif i onda je 'uvukao' ChartHolder i radi, ali ne znam kako da uvucem tabelu.
Moze li mi neko pomoci?
[ Simke @ 17.03.2004. 08:23 ] @
Neznam da li moze bas direktno iz Excel fajla, ali ako mozes da snimis to u CSV formatu (umesto xls), onda lepo mozes da procitas CSV fajl i podatke da stavis recimo u grid.

A ako imas pristup bazi, sto ne citas podatke direktno iz nje, umesto da ide preko fajla?
[ erkan @ 17.03.2004. 08:38 ] @
Pa u projektu postoji i prikaz u DataGridu, ali trebam imati i prikaz excel tabele
'klikom na dugme'. Siguran sam da postoji nacin, vidio sam da je neko uradio u starom ASP-u.
Moguce je uvuci taj spreadSheet, direktno povlacenjem iz paleta komponenti, ali nista mi ne znaci jer ga ne vidim programski, tj. ne mogu da upravljam njime.
Zato podatke iscitam iz baze, napravim excel tabelu, ali neznm kako da je prikazem na fomi.
[ ace @ 17.03.2004. 11:43 ] @
to bi trebalo da ide ovako nekako.

String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=excelFile;Extended Properties=Excel 8.0;";
System.Data.OleDb.OleDbConnection objConn = new System.Data.OleDb.OleDbConnection(sConnectionString);
objConn.Open();


System.Data.OleDb.OleDbCommand objCmdSelect =new System.Data.OleDb.OleDbCommand("SELECT * FROM datatable"), objConn);
System.Data.OleDb.OleDbDataAdapter objAdapter1 = new System.Data.OleDb.OleDbDataAdapter();
objAdapter1.SelectCommand = objCmdSelect;

System.Data.DataSet objDataset1 = new System.Data.DataSet();
objAdapter1.Fill(objDataset1, "XLData");


DataGrid1.DataSource = objDataset1.Tables[0].DefaultView;
DataGrid1.DataBind();


objConn.Close();
[ erkan @ 17.03.2004. 12:38 ] @
Hm,
mislim da se nismo razumjeli.
Problem mi je da prikazem excel tabelu onakvu kakva jest', a ne u DataGridu.
Ako programski radim, napravim, npr:
private OWC.Spreadsheet excelTabela;
excelTabela = new OWC.SpreadsheetClass();
excelTabela.ActiveSheet.Cells[1, 1] = "Elite security";
.....
medjutim, ne mogu da je prikazem kao komponentu onakvu kakva jest.
.....
Ako pak 'uvucem' komponentu rucno (iz tool boxa, nakon sto sam je dodao), tada je ne vidim iz koda, tj ne mogu da joj dodjelim neki Id ili name na osnovu kojeg bih mogao upravljati komponentom.
Pogledao sam na jos neke forume i vidio par slicnih pitanja, ali odgovor nisam nasao.
[ mmix @ 18.03.2004. 09:48 ] @
Citat:
erkan:
private OWC.Spreadsheet excelTabela;
excelTabela = new OWC.SpreadsheetClass();
excelTabela.ActiveSheet.Cells[1, 1] = "Elite security";
.....
medjutim, ne mogu da je prikazem kao komponentu onakvu kakva jest.
.....


Ono što ti hoćeš se dešava na klijentu, a ti forsiraš kod sa serverske strane. NE POSTOJI način da instanciraš excel tabelu sa serverske strane tako da se ona pojavi na klijentu kao takva. Postoji dva načina na koji možeš ovo da uradiš sa klijentske strane, i oba koštaju:

1. Preko javascripta
sa new ActiveXObject(<<progID excela>>) kreiraš excel sa klijentske strane i daš objektu da učita excel tabelu preko http URLa. Problem: klijent mora na svojoj mašini imati instaliran Excel, što ne možeš da pretpostaviš za public korisnika, dakle jedino može da se koristi na intranetu. Opet ti je ovo bezbolnija varijanta sa strane krivičnog zakona, pošto je klijent odgovoran za posedovanje excela

2. Preko object tag-a
Instaliraš na server OWC (Office Web Components) i koristeći <OBJECT> html tag instanciraš excel kao OWC komponentu na klijentu. Problem: Za OWC se plaća licenca po korisniku, a za public site ne možeš da pretpostaviš koliko će ih biti (može ih biti milion), a ako okačiš OWC bez licence, aftamacki ga piratuješ i kači te krivični zakon. Dakle, opet može samo na intranetu.

Ako pak koristiš intranet, odaberi jedan od ova dva metoda pa ću ti okačiti neki konkretan primer u kodu.


[ erkan @ 18.03.2004. 10:32 ] @
Mada priznajem da nisam u potpunosti razumio,
zamolio bih te da mi nesto vise kazes o ovom drugom nacina pa mogu da
se nadam da ce i proradit', jos ako imas kakav kod - odlicno. Hvala ti.
[ mmix @ 19.03.2004. 14:26 ] @
Ok, OWC 11 (Office 2003 varijanta) se skida sa adrese:

http://www.microsoft.com/downl...0fd290d4b76&displaylang=en

ili ga uzmeš sa prvog diska instalacije (folder OWC11) i staviš na web server u root/OWC11

onda ubaciš sledeći tag u HTML

Code:

<object id="ExcelBook"
 classid="CLSID:0002E559-0000-0000-C000-000000000046">
 <param name=DisplayTitleBar value=false>
 <param name=Autofit value=true>
 <a href="http://localhost/owc11/setup.exe">Kliknite ovde da instalirate Office 2003 Web Components koji Vam trebaju za pregled Excel fajlova.</a>
</object>


Koji će dokument biti učitan biraš sa parametrom
<param name="XMLURL" value="MyBook.xml">

kako ti više odgovara. XMURL može da bude i http-based i ftp-based, opet kako ti više odgovara.

XML Spreadsheet fajl dobijaš iz samog excela preko SaveAs, pa kao tip fajla staviš "XML Spreadsheet" (ne XML Data, jer će onda da pogubi definicije XLS fajla, kao što su formule, stilovi, itd. Sve ovo možeš i programski da odradiš na serveru). Sam XLS fajl ne može da bude učitan na ovaj način, ali je XML Spreadsheet fajl po funkcionalnost gotovo identičan, tako da je ekvivalentno upotrebljiv.

Klasično instanciranje OWC-a preko ActiveX CAB fajlova nije podržano i naravno stavljanje OWC-a na javni internet sajt predstavlja krivično delo. Ti sad vidi...
BTW, u primeru sam stavio da je server localhost, to naravno prilagodiš imenu servera.
[ erkan @ 22.03.2004. 07:14 ] @
hvala ti.
tek sam sad vidio. Pogledacu pa ako bude nekih nejanoca javit' cu
se opet.
Hvala jos jednom.