[php/html] Excel-file als HTML

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • robutt
  • Registratie: Augustus 2001
  • Laatst online: 14-07 23:03
Als je bij Google zoekt en er komen geen HTML maar Word-docs of Excel-sheets naar voren, dan kun je die bekijken op de normale wijze met de juiste programmatuur.
Echter, je kunt ook kiezen voor een HTML-versie van die DOC/XLS.

Is er iemand die weet hoe dat gedaan wordt? Ik heb een site met veel Excel-bestanden, maar niet alle bezoekers hebben Excel.

Mensen kunnen de bestanden zelf uploaden, dus ik ga niet alles ombakken (dus save as htm is geen antwoord)..

Iemand?

Acties:
  • 0 Henk 'm!

  • SWfreak
  • Registratie: Juni 2001
  • Niet online
Je kunt als je PHP onder Windows draait gebruik maken van een COM-link met Excel. Zoiets als
PHP:
1
$Excel = new COM("excel.application");

geloof ik. Daarna kun je die excel-file laden en er mee doen wat je wilt. Hoe dat precies werkt weet ik ook niet, maar dat moet niet moeilijk op te zoeken zijn.

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 08:24

gorgi_19

Kruimeltjes zijn weer op :9

SWfreak: Is het dan niet zo dat Microsoft Excel op de server geinstalleerd moet zijn?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 17-09 23:59

TeeDee

CQB 241

in asp:

ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<%
' Selected constants from adovbs.inc
Const adOpenStatic = 3
Const adLockPessimistic = 2

Dim cnnExcel
Dim rstExcel
Dim I
Dim iCols

' This is all standard ADO except for the connection string.
' You can also use a DSN instead, but so it'll run out of the
' box on your machine I'm using the string instead.
Set cnnExcel = Server.CreateObject("ADODB.Connection")
cnnExcel.Open "DBQ=" & Server.MapPath("xl_data.xls") & ";" & _
    "DRIVER={Microsoft Excel Driver (*.xls)};"

' Same as any other data source.
' FYI: TestData is my named range in the Excel file
Set rstExcel = Server.CreateObject("ADODB.Recordset")
rstExcel.Open "SELECT * FROM TestData;", cnnExcel, _
    adOpenStatic, adLockPessimistic

' Get a count of the fields and subtract one since we start
' counting from 0.
iCols = rstExcel.Fields.Count
%>
<table border="1">
    <thead>
        <%
        ' Show the names that are contained in the first row
        ' of the named range.  Make sure you include them in
        ' your range when you create it.
        For I = 0 To iCols - 1
            Response.Write "<th>"
            Response.Write rstExcel.Fields.Item(I).Name
            Response.Write "</th>" & vbCrLf
        Next 'I
        %>
    </thead>
    <%
    rstExcel.MoveFirst

    ' Loop through the data rows showing data in an HTML table.
    Do While Not rstExcel.EOF
        Response.Write "<tr>" & vbCrLf
        For I = 0 To iCols - 1
            Response.Write "<td>"
            Response.Write rstExcel.Fields.Item(I).Value
            Response.Write "</td>" & vbCrLf
        Next 'I
        Response.Write "</tr>" & vbCrLf

        rstExcel.MoveNext
    Loop
    %>
</table>


Wat doet dit? Wel, die maakt een verbinding naar je excel sheet alszijnde een database. En dan kan je er natuurlijk alles mee doen.

hier de link

gorgi_19: je hebt niet de complete excel nodig, maar iets van Office WebObjects oid...

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

TeeDee schreef op 03 January 2003 @ 16:50:
in asp:


Wat doet dit? Wel, die maakt een verbinding naar je excel sheet alszijnde een database. En dan kan je er natuurlijk alles mee doen.

hier de link

gorgi_19: je hebt niet de complete excel nodig, maar iets van Office WebObjects oid...
Goed idee.... zie deze quote van de site...
As bad an idea as this can be, I'm still getting a lot of requests for the ability to use Excel as a data source. Well here you go! Please be aware that while ASP is meant to handle multiple users Excel is not so you should expect problems if you put this on a server that handles multiple users.
En je heb een licentie van office nodig die op de webserver draait.


Misschien heb je hier wat aan?
http://chicago.sourceforge.net/xlhtml/

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

Verwijderd

Voor Perl zijn er een aantal modules die excel bestanden kunnen lezen en zelfs primitief schrijven, zoeken op CPAN levert vele excel modules op. Voordeel hiervan is dat je geen OLE koppeling nodig hebt en dus geen windows server, en geen excel licentie.

Acties:
  • 0 Henk 'm!

Verwijderd

In asp.net heb ik een stukje code dat gewoon een sql commanda uitvoert op je excel bestand.
Daarna doe je ermee wat je wilt, html ,database,...
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<html>
<head></head>
<script language="VB" runat="server">
Sub Page_Load(sender As Object, e As EventArgs)
    Dim myDataset As New DataSet()
    
    Dim strConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                    "Data Source=" & Replace(Server.MapPath("."), "\", "\\") & "\\test.xls;" & _
                "Extended Properties=""Excel 8.0;"""

    'You must use the $ after the object you reference in the spreadsheet
    Dim myOleDbDataAdapter As New OleDbDataAdapter("SELECT * FROM [Blad1$]", strConn)
    myOleDbDataAdapter.Fill(myDataset)

    DataGrid1.DataSource = myDataset.Tables(0).DefaultView
    DataGrid1.DataBind()        
End Sub
</script>
<body>
    <form runat="server">
        <asp:DataGrid id="DataGrid1" runat="server"></asp:DataGrid>
        <!-- Insert content here -->
    </form>
</body>
</html>

[ Voor 19% gewijzigd door Verwijderd op 03-01-2003 19:20 ]

Pagina: 1