Php 电子表格excel writer 9.2

Php 电子表格excel writer 9.2,php,mysql,Php,Mysql,我正在使用电子表格excel writer(9.2)从mysql(4.1.22)数据库下载excel文件。我在同一台服务器上成功地完成了这项工作,这段代码非常相似,但在这种情况下它不起作用。我得到了一个excel文件,里面有数据,但都在一个单元格中,各种字符混杂在一起。有人知道问题出在哪里吗?我已经做了几天的修改和重新测试了。如果有人能发现我没有看到的东西,我会非常感激 <?php require_once "/home/cloudare/php/Spreadsheet/Excel/

我正在使用电子表格excel writer(9.2)从mysql(4.1.22)数据库下载excel文件。我在同一台服务器上成功地完成了这项工作,这段代码非常相似,但在这种情况下它不起作用。我得到了一个excel文件,里面有数据,但都在一个单元格中,各种字符混杂在一起。有人知道问题出在哪里吗?我已经做了几天的修改和重新测试了。如果有人能发现我没有看到的东西,我会非常感激

   <?php
require_once "/home/cloudare/php/Spreadsheet/Excel/Writer.php";
// Create workbook
$workbook =& new Spreadsheet_Excel_Writer();
// sending HTTP headers
$workbook->send('registration.xls');
// Create worksheet
$worksheet =& $workbook->addWorksheet('Registration Worksheet');

// Add DB connection script here
include("dbinfo.inc.php");
include("functions.inc.php");
$from=$_POST['from'];
$to=$_POST['to'];
mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query = "SELECT * FROM register WHERE  date BETWEEN  '$from'  AND  '$to'" ;
$result = mysql_query($query);
//$result = do_query($query,__LINE__);

// Loop through the data, adding it to the sheet

while($row = mysql_fetch_assoc($result))
{
  $array[] = $row; 
    extract($row);
    $worksheet->write($currentRow,0,$id);
    $worksheet->write($currentRow,1,$name);
    $worksheet->write($currentRow,2,$last);
    $worksheet->write($currentRow,3,$title);
    $worksheet->write($currentRow,4,$company);
    $worksheet->write($currentRow,5,$phone);
    $worksheet->write($currentRow,6,$mobile);
    $worksheet->write($currentRow,7,$email);
    $worksheet->write($currentRow,8,$cloud);
    $worksheet->write($currentRow,9,$participant);
    $worksheet->write($currentRow,10,$date);
    // Remember Excel starts counting rows from #1!
    $excelRow = $currentRow + 1;
    $currentRow++;
}

$workbook->close();
?>

S\u E\u W是死器。您应该在某个时候切换到,特别是如果您希望支持比BIFF 5.0文件(Excel 5.0)更新的文件


检查您的查询是否正常工作并生成正确的$行。尽量避免像瘟疫一样的
extract()
。这几乎和register\u globals的想法一样可怕,让你重现register\u globals最初引起的问题。键入
$row['id']
$row['name']
等并不需要太多的工作,也省去了在执行extract()调用之前覆盖其他用于其他目的的变量的麻烦。

@yes123:这是s_E_W所必需的。这是一个旧库。@Marc:实际上我认为这取决于它运行的PHP版本。如果他使用的是5.3+Hi Marc B,就不需要了,谢谢。我尝试替换忽略extract()的循环,但得到了完全相同的结果。我想这可能是因为我使用的是Excel2003,我得到的信息是,“此文件的格式不可识别”。我想我会按照你的建议试试PHPExcel。它适用于Excel 2003吗?不要直接在Excel中打开该文件。而是下载它,并在文本编辑器中查看它。可能还有一些PHP错误/警告导致excel认为文件已损坏。是的,PHPExcel可以处理最新的.xls和.xlsx格式。