Avatar billede 3z Nybegynder
13. november 2006 - 10:28 Der er 10 kommentarer

Fra ASP til .doc er det muligt ?

Hola senores,

Jeg har en asp side genereret med udtræk fra en access database. Jeg har nu brug for dels at kunne generere et .doc (Word) dokument med oplysningerne i databasen og dels at kunne sende det på en mail til en given modtager...

Er det muligt ?
If so how :)
Avatar billede boris Mester
13. november 2006 - 10:35 #1
Det ville kræve en afsindig programmering at generere en fil med indholdet af et .doc

En anelse nemmere formentlig at lave en .rtf, som vist er en ren tekstfil, men stadig voldsomt omfattende.

Med mindre du har adgang til en server hvor der er et eller andet objekt, som kan gemme tingene i word-format
Avatar billede boris Mester
13. november 2006 - 10:38 #2
Selv har jeg brugt denne løsning:
Oprette en side i HTML med topmargin 1 og leftmargin 0.
Oprette en tabel med bredde 638 pixels.
Skrive indholdet i denne.
Det virker rimeligt i de fleste printere
Avatar billede 3z Nybegynder
13. november 2006 - 11:04 #3
Det duer bare ikke - det skal være i dokumentform så det kan emailes.
Er der evt. andre formater der kan bruges, så man kunne sende oplysnignerne som et dokument i en email ?
Avatar billede boris Mester
13. november 2006 - 11:49 #4
Med mindre du har adgang til objekter installeret på serveren, som kan generere dokumenter, skal du generere det selv som tekstfil.

HTML er et udmærket format, som du sagtens kan sende i en email.

Du skriver simpelthen hele koden med
<html>
osv
osv
</html>
til en tekstfil, hvorefter du vedhæfter denne fil i mailen.

HTML har den fordel i forhold til en tekstfil, at du kan lave det hele i en tabel, så det står pænt.
Avatar billede boris Mester
13. november 2006 - 11:50 #5
Bare lad være med at lægge javascript og den slags i HTML-filen, det er spam- og virusfiltre ikke glade for. Det samme gælder forms.

Men hvis du går ud fra at modtageren er på internettet kan du referere til f.eks. billeder med absolut sti.
Avatar billede benson Nybegynder
13. november 2006 - 13:11 #6
3z> Hvis du kan lave dit Word dokument som det skal se ud, således at det ikke skal ændres i størrelse eller generelt indhold, så kan det lade sig gøre.
Jeg har selv brugt dette til generering af fax forsider på baggrund af db-opslag i en leverandør liste.
Jeg blev så træt af at skrive alle oplysninger hele tiden. Desuden lavede jeg kort derefter det samme til et brev hoved, hvorefter dokumentet kunne redigeres videre bagefter.

Så det kan lade sig gøre, men det kræver som sagt at "indholdet" og størrelsen på dokumentet ikke ændres.

Mht. Indholdet, laves skabelonen simpelthen med blanke felter, eller med et tilfældig indhold. Dette indhold erstatter du med dine variabler via din asp-side.
Avatar billede 3z Nybegynder
13. november 2006 - 13:35 #7
boris - ja jeg er klar over at html kan emailes, men til dette brug duer det ikke helt. En simpel txt fil er heller ikke godt nok, da formatteringen ikke kan laves ordentligt.

benson - kan du udbyde lidt nærmere ? Min side vil have samme format/udseende hver gang og blot med forskelligt indhold, men hvordan genererer jeg så word dokumentet online ?
Avatar billede benson Nybegynder
13. november 2006 - 13:50 #8
3z> Jeg kigger lige efter det når jeg er hjemme fra arbejde. Der er nu ikke så meget hokus pokus i det, når du bevarer format/udseende som du skriver. Men det er nemmere hvis jeg lige finder mit eksempel derhjemme.
Skriver senere i aften. Er nok først på efter kl. 20 igen.
Avatar billede boris Mester
13. november 2006 - 15:05 #9
jeg kigger engang efter den tid
Avatar billede benson Nybegynder
13. november 2006 - 22:16 #10
Hejsa
Undskyld det sene tidspunkt, men der var lige lidt der skulle ordnes i cafeteriet efter badminton ;-)

I mit fax dokument, har jeg defineret alle adresse felter med 60 tegn.

Fax dokumentet åbnes i min editor (TSW WebCoder) som ren tekst, og gemmes med ekstension *.ASP.

Derefter tilføjes følgende i toppen:

<%
Function Fix(tempString, tal)
    While LEn(tempstring)<tal
        tempString = tempstring & " "
    Wend
    fix=tempstring
End Function


If request.servervariables("Query_string")<>"" Then
       
        ref=request("refID")
        refpers=request("refPers")

        set objconn=Server.CreateObject("ADODB.connection")
        StrConnection ="DSN=dlgproddsn;Database=dlgprod;UID=dlgprod;PWD=dlgprod"
        objconn.open strConnection
        set objRS=server.CreateObject("ADODB.Recordset")
        set objRS.ActiveConnection=objconn
        If ref<>0 Then
            tempSQL="SELECT * from firmadb WHERE (firmaID=" & ref & ")"

            objRS.Open tempSQL
            f3=fix(objRS("firmanavn"),60)
            f4=fix(objRS("adresse"),60)
            f5=fix(objRS("postnr"),60)
            f6=fix(objRS("adrby"),60)
            f7=fix(objRS("adrland"),60)
            f8=fix(objRS("tlf"),60)
            f9=fix(objRS("fax"),60)
            f10=fix(objRS("femail"),60)
            f11=fix(objRS("web"),60)
            f12=fix("",60)
            objRS.Close       
        Else
            f3=""
        End if
        IF refpers<>"" Then
            tempSQL="SELECT * from person WHERE (personID=" & refpers & ")"

            objRS.Open tempSQL
            if objRS("pfax")<>"pfax" Then
                f9=fix(objRS("pfax"),60)
            End if
            f12=fix(objRS("navn"),60)

            objconn.close
        End if
        set objRS=nothing
        set objconn=nothing
        faxdate=fix(now(),60)
End if

f20=Request.cookies("XXFIRMAprod")("ini")
f21=Request.cookies("XXFIRMAprod")("navn")
f22=Request.cookies("XXFIRMAprod")("ini") & "@XXFIRMA.dk"
f21=fix(f21,60)
f22=fix(f22,60)
f23=Request.cookies("oplysning")("afdeling")
f23=fix(f23,30)
f24=Request.cookies("oplysning")("adresse")
f24=fix(f24,30)
f25=Request.cookies("oplysning")("postby")
f25=fix(f25,27)
f26=Request.cookies("oplysning")("tlf")
f26=fix(f26,25)
f27=Request.cookies("oplysning")("fax")
f27=fix(f27,26)
f30=fix(FormatDateTime(Date,1),60)

Response.ContentType = "application/ms-word"
Response.Addheader "Content-Disposition", "attatchment; filename=fax.doc"


%>
Og herefter det sidste "%>" tegn er selve word dokumentet, egentlig som ren volapyk.
Jeg kan ikke paste derfra, da der er for mange ulovlige tegn til at kopiere ind. Men vil selvfølgelig gerne sende en kopi.
Men resten af øvelsen er da, at erstatte de steder i teksten hvor jeg f.eks har mit faxnummer, med min variable. I dette tilfælde skal der stå : <%=f9%>
Men man skal huske at erstatte alle 60 tegn i word teksten med variabelnavnet. Ellers virker det ikke..

PS: linierne
Response.ContentType = "application/ms-word"
Response.Addheader "Content-Disposition", "attatchment; filename=fax.doc"

fortæller jo browseren at der er tale om et worddokument.

Jeg er ikke lige sikker på det er godt nok forklaret. Men jeg sender som sagt gerne en kopi af ASP dokumentet.

Benson
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester