1

嘿伙计们,我是 PHP 新手,正在尝试自学这种语言。现在我正在尝试使用纯 PHP 来实现一些东西,以在浏览器上显示 Excel 文档。我正在使用 PHP Excel Reader 阅读文档,但不知何故它们没有显示。

虽然我可以自己调试和研究是否有错误消息告诉我哪一行导致错误,但是没有,我现在面临的问题是

  1. 表格未显示
  2. 没有来自 apache 的任何类型的错误消息

我想要达到的目标:

  • 使用 PHP Excel Reader 在浏览器上以表格格式显示 Excel 电子表格
  • 检查 .xls 文档中有多少工作表,获取工作表名称并相应地显示按钮数量
  • 按钮必须能够允许用户在一个文档的不同页面之间遍历

现在我可以获取代码来计算张数并正确显示其名称和按钮,但仍然无法显示相应的表格。

我根据文档尝试了多种方法来解决此问题,但无济于事。

这是我当前的代码:

例子.php

    <?php
    error_reporting(E_ALL ^ E_NOTICE);
    require_once 'reader.php';
    $data = new Spreadsheet_Excel_Reader("test.xls");
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <script type="text/javascript" src="scripts/excel.js"></script>
    <style>
    table.excel {
            border-style:ridge;
            border-width:1;
            border-collapse:collapse;
            font-family:sans-serif;
            font-size:12px;
    }
    table.excel thead th, table.excel tbody th {
            background:#CCCCCC;
            border-style:ridge;
            border-width:1;
            text-align: center;
            vertical-align:bottom;
    }
    table.excel tbody th {
            text-align:center;
            width:20px;
    }
    table.excel tbody td {
            vertical-align:bottom;
    }
    .clearfloat {
            clear: both;
    }
    table.excel tbody td {
        padding: 0 3px;
            border: 1px solid #EEEEEE;
    }
    table.excel tname {
            font-family: Arial, Helvetica, sans-serif;
            font-size: 12px;
            font-weight: bold;
            color: #000000;
            padding-right: 10px;
            padding-left: 10px;
    }
    .sheetnames {
            font-family: Arial, Helvetica, sans-serif;
            font-size: 12px;
            font-weight: bold;
            text-transform: uppercase;
            color: #000000;
            padding-right: 20px;
            float: left;
            padding-bottom: 20px;
    }
    </style>
    </head>

    <body onLoad="changeSheet(0)">
    <form action="<?php echo $editFormAction; ?>" method="post" name="worksheet">
    <?php
    $i = -1;
    for($s=0; $s<count($data->sheets)-1; $s++) {
    $i++;
    ?>
    <div class="sheetnames">
    <input name="sheet" type="button" value="<?php echo $data->boundsheets[$i]['name'];?>" onClick="changeSheet(<?php echo $i ?>)">
    </div>
    <?php

}
?>
<div class="clearfloat"></div>
<div id="test"></div>
</form>
</body>
</html>

excel.js

// JavaScript Document
var xmlHttp 

function changeSheet(n)
{ 
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
 {
 alert ("Browser does not support HTTP Request")
 return
 }
var url="script pages/changeSheet.php"
url=url+"?q="+n
xmlHttp.onreadystatechange=stateChanged 
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}

function stateChanged() 
{ 
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
 { 
 document.getElementById("test").innerHTML=xmlHttp.responseText 
 } 
}

function GetXmlHttpObject()
{
var xmlHttp=null;
try
 {
 // Firefox, Opera 8.0+, Safari
 xmlHttp=new XMLHttpRequest();
 }
catch (e)
 {
 //Internet Explorer
 try
  {
  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  }
 catch (e)
  {
  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
 }
return xmlHttp;
}

更改表.php

<?php
error_reporting(E_ALL ^ E_NOTICE);
require_once 'reader.php';
$data = new Spreadsheet_Excel_Reader("test.xls");

$q = $_GET['q'];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
echo $data->dump(true,false, $sheet=$q); 
?>
</body>
</html>

与代码一起附加的是 PHP Excel Reader 的库文件,我认为它不会导致问题。

再次感谢你们花时间阅读我的问题。那么出了什么问题呢?是什么导致表格不显示?

4

1 回答 1

0

看起来您的 Excel_Reader 版本不支持“::dump()”。

看起来您必须自己遍历工作表、行和列。

试试 var_dump($data) 看看里面有什么。

于 2013-05-22T08:13:02.973 回答