Šta je novo?

ASP.NET i C# - da naprave word

LuxoR

Čuven
Učlanjen(a)
20.01.2002
Poruke
871
Poena
619
Imam jedan sajt u ASP.NET-u i C# "u pozadini" .. sve je nakačeno na MSSQL bazu i u nju se pune razni podaci ...

treba mi mogućnost da generišem Word (može i Excel) fajl sa određenim podacima iz baze ...

taj word/excel nije nešto posebno komplikovan ... neko zaglavlje, određeni spisak (klasičan spisak npr kao neki učesnici) i na kraju određeni tekst ...

najbolja varijanta mi je word (i to onaj "stariji" .doc format)

Primeri koje sam našao podrazumevaju da se napravi fajl na nekoj lokaciji na serveru .. nisam siguran koliko to meni pije vodu .. meni treba da se u trenutku kada korisnik klikne na odgovarajući link taj fajl generiše i automaski krene download .. nakon obavljenog download-a da se taj fajl obriše sa servera ...

ako imate neki drugi predlog sve slušam ...

P.S. davno sam radio sa crystal reports i to nije loše rešenje, međutim tada se taj "dodatak" nešto posebno plaćao, tražio neku licencu .. da li je nešto promenjeno po tom pitanju ?
 
Probaj ovo: ovo ili ovo. PDF, Excel i Image su opcije.
 
Da li si rešio problem?
 
Sto se tice generisanja fajla nema potrebe da sam pravis ceo fajl. Ima sigurno gomila API-a koji ti olaksavaju posao. Ja sam ovo radio u Javi pre godinu, dve, ali sam siguran da podrska u C# moze samo biti bolja. Mozda ovako nesto pomogne za word: Word automation using C#.

Sto se ostatka tice, samo ubaci to u response stream i nema problema.
 
Uradio ...

napravim html fajl koji se "renderuje" u word ... na ovaj način ne pravim nikakve fajlove na serveru već se samo korisniknu pojavi kao download.

Ovo mi je za sada jednostavno rešenje, jer je jednostavan izveštaj i relativno mi je lako kroz html da formiram tabelu.

(Mada kako se stvari razvijaju ipak će morati da padne Crystal Reports jer očekujemo ipak komplikovanije izveštaje.. a tu je crystal stvarno keva..)

Kod:
// Pravim html dokument
        string strBody = "<html>" +

            "<body><table>";

        // svaki red iz grida pravim u red u html tabeli
        foreach (GridViewRow gwr in GridView1.Rows)
        {
            strBody = strBody + "<tr><td>" + gwr.Cells[0].Text.ToString() + "</td><td>" + gwr.Cells[1].Text.ToString() + "</td><td>" + gwr.Cells[2].Text.ToString() + "</td></tr>";

        }

         strBody = strBody+"</table></body></html>";

        string fileName = "Spisak.doc";

        Response.AppendHeader("Content-Type", "application/msword");

        Response.AppendHeader ("Content-disposition", "attachment; filename="+ fileName);

        Response.Write(strBody);
 
Vrh Dno