04. maj 1999 - 00:00Der er
11 kommentarer og 1 løsning
Krydsreference
på vores intranet har vi mange word-dokumenter. Kan man fra asp åbne sådanne dokumenter, og undersøge, om dokumentet indeholder links til andre websites ? Thorvald
Thorvald det kan siges meget enkelt det kan ikke lade sig gøre. Det du vil er jo at åbne et word dokument fra en asp fil men hvad vil du åbne og læse den medden med ??? der er jo kun word der kan læse de filer, derudover ønsker du at en asp komponenten vil kunne søge igennem dit word dokumnet.
Jeg vil forslå dig at du istedet laver en rutine der kopiere dine word dokumenter over i en skuffe hvor du har et sæt asp eller htm(l) dokumnter liggende, dem kan du så åbne og gennemsøge....jeg kan ikke se hvordan det ellers kan lade sig gøre....
Jeg ser flere forskellige muligheder, idet jeg fra asp kunne lave en binary read fra wordfilen, og så søge efter http, men f.eks. gemmer Word97 alle tegn som dobbelttegn. Det kan dog løses.
En løsning som jeg hellere vil gå efter er at kalde Words html-konverter, eller noget lignende, fra asp-siden. Så vidt jeg har forstået kan man via en dll, ocx eller andet gøre hvad som helst på serveren, og dermed også fra et asp-script.
Det kan være jeg i stedet skulle have spurgt i et office-forum.
Det ser ud til at 15 seconds er stedet at kigge, for der er eksempler på at man åbner/opretter word-dokumenter fra asp. Som newbee har jeg ikke så meget styr på det med point, men for 120 skulle man vel kunne få mere end en stabel poster :-)
Det kan sagtens lade sig gøre, det "eneste" det kræver er at du programmerer en ActiveX DLL, fortrinsvis i Visual Basic(pga at det er nemt at kalde word m.m.), der scanner et word dokumentet eller flere for de links du omtaler. Det er altså ikke umuligt som cybles skriver. Det er jo netop det fede ved asp, kan asp det ikke så kan du med sikkerhed kode en komponent der kan gøre det.
prøv dig frem, der er masser af dokumentation omkring VB og office pakken!
alfar som deltager i dette forum engang i mellem udviklede en sådan komponent til en opgave vi lavede for et stykke tid siden - jeg sender ham lige herind - så kan han sikkert hjælpe dig, hvis du kaster nogle points i hovedet af dig!
Lav en activeX-dll i VB Tilføj et modul, hvis der ikke allerede er et, og tilføj reference til Microsoft Word Object Library
I modulet skal der være en public variabel og to funktioner:
'-------------------------------------------- ' Start Modul '--------------------------------------------
Public MyWord As Word.Application
Public Function Initialize() Set MyWord = CreateObject("Word.Application") Set Initialize = MyWord End Function
Public Function Close() Set MyWord = Nothing Set Close = Nothing End Function
'-------------------------------------------- ' Slut på modul '--------------------------------------------
Nu kan DLL'en kompileres, registreres med regsvr32.exe og bruges i en asp fil med noget i denne stil:
Set MyWordDLL = Server.CreateObject("DLLNavn.Modulnavn")
Set MyWord = MyWordDLL.Initialize()
' Nu virker MyWord som et Word-Objekt, nøjagtig som i VBA - Resten kan man læse sig til i hjælpefilerne, når man redigerer makroer i word. Husk at skrive MyWord. foran hvert objekt, for eksempel:
Jeg er nok ikke engang en lille sild, for VB giver mig syntaks-fejl på Close.
Er det en anden function jeg skal bruge eller er det fordi den ikke er Microsoft Word Object Library (8.0) Thorvakd
Synes godt om
Ny brugerNybegynder
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.