hier noch mal ein neues Modul von mir.
Aktualisierte Version vom 29.09.2007
!!! WICHTIG !!! - Um es nutzern zu können müsst ihr folgende Datei runterladen http://marcelbensch.de/upload/downloads/excel.rar, entpacken und den ordner excel so wie er ist in den Mandanten/includes ordner verschieben.
So hier nun der Modul Quelltext:
Für das aussehen sind Stylesheets verantwortlich hier mal ein Beispiel:Beschreibung:Eingabe:Code: Alles auswählen
Ein Excel Viewer auf Basis der PHPExcelReader Klasse Version 1.0 Dient dazu um Excel Dokumente direkt im Web anzeigen zu lassen ohne vorher alles selbst in HTML umbauen zu müssen. Aussehen wird über Stylesheets angepasst.
Ausgabe:Code: Alles auswählen
?><?php /*********************************************** * CONTENIDO MODUL - INPUT * * Modulname : Excel Viewer * Author(s) : Marcel Bensch, (Original Module: Illustration by Andreas Lindner, 4fb * Copyright : Marcel Bensch * Created : 15.08.2007 ************************************************/ #Selected xls directory $cms_dirname = "CMS_VALUE[1]"; // #Selected xls $cms_filename = "CMS_VALUE[2]"; if ($cms_dirname == '' || $cms_dirname == '0') { $cms_dirname = 'upload/'; } #Get paths $sql = "SELECT htmlpath, frontendpath FROM ".$cfg["tab"]["clients"]." WHERE idclient = ".$client." "; $db->query($sql); if ($db->next_record()) { $htmlpath = $db->f('htmlpath'); $frontendpath = $db->f('frontendpath'); } #Choose excel folder echo '<table cellpadding="0" cellspacing="0" border="0"> <tr><td class="text_medium" style="padding:5px">'.mi18n("Hier können Sie die gewünschte Excel-Datei zur Anzeige auswählen").'</td></tr> <tr><td class="text_medium" style="padding:5px">'.mi18n("Verzeichnis mit Datei auswählen").': </td></tr> <tr><td class="text_medium" style="padding:5px">'; echo '<select name="CMS_VAR[1]" style="width:200px">'; #Get upload directories $sql = "SELECT DISTINCT dirname FROM ".$cfg["tab"]["upl"]." WHERE idclient='$client' AND filetype IN ('xls') ORDER BY dirname"; $db->query($sql); $selected = false; while ($db->next_record()) { $dirname = $db->f('dirname'); if ($cms_dirname != $dirname) { echo '<option value="'.$dirname.'"> '.$dirname.'</option>'; } else { $selected = true; echo '<option value="'.$dirname.'" selected="selected"> '.$dirname.'</option>'; } } if (!$selected) { echo '<option value="0" selected="selected">'.i18n("Bitte wählen").'</option>'; } else { echo '<option value="0">'.i18n("Bitte wählen").'</option>'; } #Choose xls file echo '</select> <input type="image" src="images/submit.gif"> <tr><td class="text_medium" style="padding:5px">'.mi18n("Datei wählen").': </td></tr> <tr><td class="text_medium" style="padding:5px">'; echo '<select name="CMS_VAR[2]" style="width:200px">'; echo '<option value="0" selected="selected">'.i18n("Bitte wählen").'</option>'; if ($cms_dirname != '0') { #Get uploaded files $sql = "SELECT filename FROM ".$cfg["tab"]["upl"]." WHERE idclient = '$client' AND filetype IN ('xls') AND dirname = '$cms_dirname' ORDER BY filename"; $db->query($sql); while ($db->next_record()) { $img_name = $db->f('filename'); if ($cms_filename != $img_name) { echo '<option value="'.$img_name.'"> '.$img_name.'</option>'; } else { echo '<option selected="selected" value="'.$img_name.'"> '.$img_name.'</option>'; } } } echo '</select> <input type="image" src="images/submit.gif">'; #Preview image if ($cms_dirname != '0' AND $cms_filename != '0' AND strlen($cms_dirname) > 0 AND strlen($cms_filename) > 0) { $img_path = $htmlpath.$cfgClient[$client]['upload'].$cms_dirname.$cms_filename; $img_split = preg_split("/\./", $cms_filename); $count = count($img_split); $type = $img_split[$count -1]; echo '<tr><td colspan="2" style="padding:5px"> '.$htmlpath.$cfgClient[$client]['upload'].$cms_dirname.$cms_filename.' </td></tr> '; } echo '</td></tr>'; echo '</table>'; ?><?php
Code: Alles auswählen
<?php #Selected xls directory $cms_dirname = "CMS_VALUE[1]"; #Selected xls $cms_filename = "CMS_VALUE[2]"; $allow_url_override = 1; // Set to 0 to not allow changed VIA POST or GET $file_to_include = $htmlpath.$cfgClient[$client]['upload'].$cms_dirname.$cms_filename; if(!$allow_url_override || !isset($file_to_include)) { $file_to_include = "yourfile.xls"; } if(!$allow_url_override || !isset($max_rows)) { $max_rows = 0; //USE 0 for no max } if(!$allow_url_override || !isset($max_cols)) { $max_cols = 5; //USE 0 for no max } if(!$allow_url_override || !isset($debug)) { $debug = 0; //1 for on 0 for off } if(!$allow_url_override || !isset($force_nobr)) { $force_nobr = 1; //Force the info in cells not to wrap unless stated explicitly (newline) } cInclude ("frontend", "includes/excel/reader.php"); $data = new Spreadsheet_Excel_Reader(); $data->setOutputEncoding('UTF-8'); $data->setUTFEncoder('iconv'); $data->read($file_to_include); error_reporting(E_ALL ^ E_NOTICE); function make_alpha_from_numbers($number) { $numeric = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; if($number<strlen($numeric)) { return $numeric[$number]; } else { $dev_by = floor($number/strlen($numeric)); return "" . make_alpha_from_numbers($dev_by-1) . make_alpha_from_numbers($number-($dev_by*strlen($numeric))); } } echo "<script type='text/javascript' language='JavaScript'> var sheet_HTML = Array();\n"; for($sheet=0;$sheet<count($data->sheets);$sheet++) { $table_output[$sheet] .= "<table class='table_body'>"; for($row=1;$row<=$data->sheets[$sheet]['numRows']&&($row<=1);$row++) { $table_output[$sheet] .= "<tr class='excel_headline'>"; for($col=1;$col<=$data->sheets[$sheet]['numCols']&&($col<=$max_cols||$max_cols==0);$col++) { if($data->sheets[$sheet]['cellsInfo'][$row][$col]['colspan'] >=1 && $data->sheets[$sheet]['cellsInfo'][$row][$col]['rowspan'] >=1) { $this_cell_colspan = " colspan=" . $data->sheets[$sheet]['cellsInfo'][$row][$col]['colspan']; $this_cell_rowspan = " rowspan=" . $data->sheets[$sheet]['cellsInfo'][$row][$col]['rowspan']; for($i=1;$i<$data->sheets[$sheet]['cellsInfo'][$row][$col]['colspan'];$i++) { $data->sheets[$sheet]['cellsInfo'][$row][$col+$i]['dontprint']=1; } for($i=1;$i<$data->sheets[$sheet]['cellsInfo'][$row][$col]['rowspan'];$i++) { for($j=0;$j<$data->sheets[$sheet]['cellsInfo'][$row][$col]['colspan'];$j++) { $data->sheets[$sheet]['cellsInfo'][$row+$i][$col+$j]['dontprint']=1; } } } else if($data->sheets[$sheet]['cellsInfo'][$row][$col]['colspan'] >=1) { $this_cell_colspan = " colspan=" . $data->sheets[$sheet]['cellsInfo'][$row][$col]['colspan']; $this_cell_rowspan = ""; for($i=1;$i<$data->sheets[$sheet]['cellsInfo'][$row][$col]['colspan'];$i++) { $data->sheets[$sheet]['cellsInfo'][$row][$col+$i]['dontprint']=1; } } else if($data->sheets[$sheet]['cellsInfo'][$row][$col]['rowspan'] >=1) { $this_cell_colspan = ""; $this_cell_rowspan = " rowspan=" . $data->sheets[$sheet]['cellsInfo'][$row][$col]['rowspan']; for($i=1;$i<$data->sheets[$sheet]['cellsInfo'][$row][$col]['rowspan'];$i++) { $data->sheets[$sheet]['cellsInfo'][$row+$i][$col]['dontprint']=1; } } else { $this_cell_colspan = ""; $this_cell_rowspan = ""; } if(!($data->sheets[$sheet]['cellsInfo'][$row][$col]['dontprint'])) { $table_output[$sheet] .= "<td class='table_data' $this_cell_colspan $this_cell_rowspan> "; if($force_nobr) { $table_output[$sheet] .= "<nobr>"; } $table_output[$sheet] .= nl2br(htmlentities($data->sheets[$sheet]['cells'][$row][$col])); if($force_nobr) { $table_output[$sheet] .= "</nobr>"; } $table_output[$sheet] .= "</td>"; } } $table_output[$sheet] .= "</tr>"; } for($row=3;$row<=$data->sheets[$sheet]['numRows']&&($row<=$max_rows||$max_rows==0);$row++) { if (is_int($row/2)) { $table_output[$sheet] .= "<tr class='bg_grey'>";} else {$table_output[$sheet] .= "<tr >";} for($col=1;$col<=$data->sheets[$sheet]['numCols']&&($col<=$max_cols||$max_cols==0);$col++) { if($data->sheets[$sheet]['cellsInfo'][$row][$col]['colspan'] >=1 && $data->sheets[$sheet]['cellsInfo'][$row][$col]['rowspan'] >=1) { $this_cell_colspan = " colspan=" . $data->sheets[$sheet]['cellsInfo'][$row][$col]['colspan']; $this_cell_rowspan = " rowspan=" . $data->sheets[$sheet]['cellsInfo'][$row][$col]['rowspan']; for($i=1;$i<$data->sheets[$sheet]['cellsInfo'][$row][$col]['colspan'];$i++) { $data->sheets[$sheet]['cellsInfo'][$row][$col+$i]['dontprint']=1; } for($i=1;$i<$data->sheets[$sheet]['cellsInfo'][$row][$col]['rowspan'];$i++) { for($j=0;$j<$data->sheets[$sheet]['cellsInfo'][$row][$col]['colspan'];$j++) { $data->sheets[$sheet]['cellsInfo'][$row+$i][$col+$j]['dontprint']=1; } } } else if($data->sheets[$sheet]['cellsInfo'][$row][$col]['colspan'] >=1) { $this_cell_colspan = " colspan=" . $data->sheets[$sheet]['cellsInfo'][$row][$col]['colspan']; $this_cell_rowspan = ""; for($i=1;$i<$data->sheets[$sheet]['cellsInfo'][$row][$col]['colspan'];$i++) { $data->sheets[$sheet]['cellsInfo'][$row][$col+$i]['dontprint']=1; } } else if($data->sheets[$sheet]['cellsInfo'][$row][$col]['rowspan'] >=1) { $this_cell_colspan = ""; $this_cell_rowspan = " rowspan=" . $data->sheets[$sheet]['cellsInfo'][$row][$col]['rowspan']; for($i=1;$i<$data->sheets[$sheet]['cellsInfo'][$row][$col]['rowspan'];$i++) { $data->sheets[$sheet]['cellsInfo'][$row+$i][$col]['dontprint']=1; } } else { $this_cell_colspan = ""; $this_cell_rowspan = ""; } if(!($data->sheets[$sheet]['cellsInfo'][$row][$col]['dontprint'])) { $table_output[$sheet] .= "<td class='table_data' $this_cell_colspan $this_cell_rowspan> "; if($force_nobr) { $table_output[$sheet] .= "<nobr>"; } $table_output[$sheet] .= nl2br(htmlentities($data->sheets[$sheet]['cells'][$row][$col])); if($force_nobr) { $table_output[$sheet] .= "</nobr>"; } $table_output[$sheet] .= "</td>"; } } $table_output[$sheet] .= "</tr>"; } $table_output[$sheet] .= "</table>"; $table_output[$sheet] = str_replace("\n","",$table_output[$sheet]); $table_output[$sheet] = str_replace("\r","",$table_output[$sheet]); $table_output[$sheet] = str_replace("\t"," ",$table_output[$sheet]); if($debug) { $debug_output = print_r($data->sheets[$sheet],true); $debug_output = str_replace("\n","\\n",$debug_output); $debug_output = str_replace("\r","\\r",$debug_output); $table_output[$sheet] .= "<pre>$debug_output</pre>"; } echo "sheet_HTML[$sheet] = \"$table_output[$sheet]\";\n"; } echo " function change_tabs(sheet) { //alert('sheet_tab_' + sheet); for(i=0;i<" , count($data->sheets) , ";i++) { document.getElementById('sheet_tab_' + i).className = 'tab_base'; } document.getElementById('table_loader_div').innerHTML=sheet_HTML[sheet]; document.getElementById('sheet_tab_' + sheet).className = 'tab_loaded'; } </script>"; echo " <div id=\"table_complete\" align=\"center\"> <div id=\"tabellen_tabs\"> <table class='table_tabs' NAME='tab_table' align='left'> <tr>"; for($sheet=0;$sheet<count($data->sheets);$sheet++) { echo "<td class='tab_base' id='sheet_tab_$sheet' align='center' onmousedown=\"change_tabs($sheet);\">", $data->boundsheets[$sheet]['name'] , "</td>"; } echo "</tr>"; echo "</table></div> <div id=table_loader_div></div> <script type='text/javascript' language='JavaScript'> change_tabs(0); </script></div><div style=\"clear:both;\" ></div><p> </p>"; ?>
Über Lob, Kritik und konstruktive Kommentare freue ich mich natürlich immer !Ein Beispiel Stylesheet:Code: Alles auswählen
#table_loader_div{ float:left; margin-left:50px; } .table_data{ /*border-bottom-style:solid; border-bottom-width:0.5px;*/ } .excel_headline { background-color:#EA8B2E; font-weight:bold; border-left:1px solid #000000; border-right: 1px solid #000000; border-bottom:1px solid #000000; border-top:0px; } .bg_grey { background-color:#ebecee; } .tab_base{ background:#F4F4F4; font-weight:bold; color:#ea8b2e; cursor:pointer; border-left:1px; border-right:1px; border-top:1px; border-bottom:0px; border-style:solid; border-color:#000000; padding:0px 3px 0px 3px; } .table_sub_heading{ background:#CCCCCC; font-weight:bold; border-style:solid; border-width:1; } .table_body{ font-weight:normal; font-size:9pt; font-family:sans-serif; border-collapse:collapse; border-left:1px solid #000000; border-right:1px solid #000000; border-top:0px; border-bottom:1px solid #000000; } #tabellen_tabs{ float:left; min-width:400px; margin-left:50px; } .table_tabs { font-weight:normal; font-size:9pt; font-family:sans-serif; border-color:#000000; border-collapse:collapse; border-left:1px; border-right:1px; border-top:1px; border-bottom:0px; border-style:solid; text-align:left; cursor:pointer; } .tab_base:hover{ background:#EA8B2E; color:#ffffff; font-weight:bold; border-color:#000000; border-left:1px; border-right:1px; border-top:1px; border-bottom:0px; border-style:solid; cursor:pointer; padding:0px 3px 0px 3px; } .tab_loaded{ background:#EA8B2E; color:#000000; font-weight:bold; border-color:#000000; border-left:1px; border-right:1px; border-top:1px; border-bottom:0px; border-style:solid; cursor:pointer; padding:0px 3px 0px 3px; } .table_body td { padding:3px 10px 3px 10px; } #table_complete{ min-width:500px; *width:500px; }
Viel Spaß damit,
Wayfearer