Kommunerne har digitaliseret indgangen for borgerne. Men bag skærmen håndteres mange arbejdsgange stadig manuelt mellem systemer, mails og organisatoriske siloer.
dette virker kun på nyere excel installationer ellers skal du have fat i komponent eller have excel installeret på serveren, således at dennes komponent kan tilgåes ellers... Så lav et .asp og gør følgende:
With Response .Write "<TABLE>" .Write "<TR>" .Write "<TD>EN CELLE</TD>" .Write "<TD>EN TIL CELLE</TD>" .Write "</TR>" .Write "<TR>" .Write "<TD>Altså opbygning ligesom en normal tabel</TD>" .Write "<TD>Der er der ingen ben i...</TD>" .Write "</TR>" .Write "</TABLE>" End With %>
Hvis du forestiller dig, at tabellen RS i nedenstående funktion, indeholder de data du vil have vist i regnearket, så vil regnearket blive dannet ved at kalde funktionen. Regnearket kan åbnes ved at klikke på linket.
Function CreateExcel(Title,CrmFilename) Dim FSO, act Set FSO = Createobject("scripting.filesystemobject") Set act = Fso.CreateTextfile(server.mappath(Fname),true)
If Not Rs.EOF and not Rs.BOF Then act.WriteLine "<html xmlns:x=""urn:schemas-microsoft-com:office:excel"">" act.WriteLine "<head>" act.WriteLine "<!--[if gte mso 9]><xml>" act.WriteLine "<x:ExcelWorkbook>" act.WriteLine "<x:ExcelWorksheets>" act.WriteLine "<x:ExcelWorksheet>" act.WriteLine "<x:Name>"& title &"</x:Name>" act.WriteLine "<x:WorksheetOptions>" act.WriteLine "<x:Print>" act.WriteLine "<x:ValidPrinterInfo/>" act.WriteLine "</x:Print>" act.WriteLine "</x:WorksheetOptions>" act.WriteLine "</x:ExcelWorksheet>" act.WriteLine "</x:ExcelWorksheets>" act.WriteLine "</x:ExcelWorkbook>" act.WriteLine "</xml>" act.WriteLine "<![endif]--> " act.WriteLine "</head>" act.WriteLine "<body>"
Act.Writeline "<table border=1>" Act.Writeline "<Tr>" For X = 0 to Rs.Fields.count - 1 Act.Writeline "<Td><b>" & Rs.Fields.Item(x).Name) & "</b></td>" Next Act.Writeline "</Tr>" While not Rs.Eof Act.Writeline "<Tr>" For X = 0 To Rs.Fields.Count - 1 Act.Writeline "<Td>" & Rs.Fields.Item(X).Value Next Act.Writeline "</Tr>" Rs.Movenext Wend Act.Writeline "</Table>" act.writeline "<tr></tr>" act.writeline "<tr>Powered by *Mig*</tr>" act.WriteLine "</body>" act.WriteLine "</html>"
End if Act.close %> Din excel fil kan hentes hér: <a href="<%=crmfilename%>" target="_blank"> Klik her </a><% End function
Nej det gør den ikke, men den skal ikke downloade den skal bare lave en excel fil, smide nogle data i arket og gemme den på serveren. Et andet program på serveren bruger så de oplysninger der er gemt i excel arket. :o)
Det er jo præcis det funktionen i mit eksempel gør. Hvis det er konstante værdier, du vil indsætte så skal du bare erstatte rs("værdierne") med dine konstanter!
michaelfp >> Har lige lavet diverse rettelser til småfejl i din kode, men kan ikke rigtig se sammenhænget i resten med denne fejl kode :
Object required: 'Rs' --- i denne linie --- If Not Rs.EOF and Not Rs.BOF Then
Og det giver jo sig selv da der ikke er lavet et object Rs. Du har sikker brugt koden til at hente fra en database og så smide i et excel ark eller noget i den stil. Dertil kommer at der i excel arket er forudbestemt hvor dataen skal ligges f.eks felt A1 skal altid have en variabel værdi G13 En anden variabel værdi osv.
I dette stykke kode, indsættes kolonneoverskrifter. Koden kan du gentage for hver kolonne du vil have overskrift i: Act.Writeline "<table border=1>" Act.Writeline "<Tr>"
'gentag næste linie for hver kolonne overskrift Act.Writeline "<Td><b>" & "-din overskrift-" & "</b></td>"
Act.Writeline "</Tr>"
For hver række du vil vise data i ændres koden til:
Act.Writeline "<Tr>" 'næste linie udfylder en celle i rækken Act.Writeline "<Td>" & "celleværdi"
Act.Writeline "</Tr>"
Iøvrigt: Der er intet forudbestemt - regnearket er dynamisk og jo - du skal fjerne RS som referere til det recordset eksemplet henter data fra.
Skal jeg så forstå det således at jeg ikke kan sætte en værdi ind i et feltet D5 bare som eksempel ? Programmet der skal bruge regnearket benytter sig nemmelig af at hente fra f.eks felt D5 og så fremdeles !
ligegyldigt hvilket af vores eksempler du tager udgangspunkt i så er du nødt til at tælle dig frem til hvilken celle som D5 er. Dvs 5 x <TR> og efterfølgende 4 x <TD>!
hiks >> "ligegyldigt hvilket af vores eksempler du tager udgangspunkt i så er du nødt til at tælle dig frem til hvilken celle som D5 er. Dvs 5 x <TR> og efterfølgende 4 x <TD>!"
Ok det var så lidt mere kedeligt da jeg har frem til CG45 i felter :o( Men så må det jo blive på den måde !
"hvis din server har excel installeret så kan du gøre som følgende eksempel - men dette kan ikke lade sig gøre uden excel på serveren:
Nå, men jeg har fået det til at virke med jeres forslag ovenfor er det ok at i deler point ? Men sikke en masse linier der skulle til for at få det lavet :o)
Jeg arbejder udelukkende med function's og sub's i klasser når jeg koder, men der er stadig mange linier der skal skrives. Har oven i købet lavet en function der generere tomme felter bare for ikke at skulle skrive linien <td></td> hver gang der skal laves et tomt felt :o)
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.