【问题标题】:Spreadsheet_Excel_Writer send unable to read fileSpreadsheet_Excel_Writer 发送无法读取文件
【发布时间】:2012-02-06 23:58:13
【问题描述】:

我使用http://www.zedwood.com/article/133/generate-xls-spreadsheet-files-with-php的以下代码

用于生成 xls 文件。无法读取文件。请帮帮我

<?php
//-----------------------------------------------------------------------------
//documentation on the spreadsheet package is at:
//http://pear.php.net/manual/en/package.fileformats.spreadsheet-excel-writer.php
//-----------------------------------------------------------------------------
chdir('phpxls');
require_once 'Writer.php';
chdir('..');

$sheet1 =  array(
  array('eventid','eventtitle'       ,'datetime'           ,'description'      ,'notes'      ),
  array('5'      ,'Education Seminar','2010-05-12 08:00:00','Increase your WPM',''           ),
  array('6'      ,'Work Party'       ,'2010-05-13 15:30:00','Boss\'s Bday'     ,'bring tacos'),
  array('7'      ,'Conference Call'  ,'2010-05-14 11:00:00','access code x4321',''           ),
  array('8'      ,'Day Off'          ,'2010-05-15'         ,'Go to Home Depot' ,''           ),
);

$sheet2 =  array(
  array('eventid','funny_name'   ),
  array('32'      ,'Adam Baum'    ),
  array('33'      ,'Anne Teak'    ),
  array('34'      ,'Ali Katt'     ),
  array('35'      ,'Anita Bath'   ),  
  array('36'      ,'April Schauer'),
  array('37'      ,'Bill Board'   ),
);

$workbook = new Spreadsheet_Excel_Writer('Test.xls');

$format_und =& $workbook->addFormat();
$format_und->setBottom(2);//thick
$format_und->setBold();
$format_und->setColor('black');
$format_und->setFontFamily('Arial');
$format_und->setSize(8);

$format_reg =& $workbook->addFormat();
$format_reg->setColor('black');
$format_reg->setFontFamily('Arial');
$format_reg->setSize(8);

$arr = array(
      'Calendar'=>$sheet1,
      'Names'   =>$sheet2,
      );
foreach($arr as $wbname=>$rows)
{
    $rowcount = count($rows);
    $colcount = count($rows[0]);

    $worksheet =& $workbook->addWorksheet($wbname);

    $worksheet->setColumn(0,0, 6.14);//setColumn(startcol,endcol,float)
    $worksheet->setColumn(1,3,15.00);
    $worksheet->setColumn(4,4, 8.00);

    for( $j=0; $j<$rowcount; $j++ )
    {
        for($i=0; $i<$colcount;$i++)
        {
            $fmt  =& $format_reg;
            if ($j==0)
                $fmt =& $format_und;

            if (isset($rows[$j][$i]))
            {
                $data=$rows[$j][$i];
                $worksheet->write($j, $i, $data, $fmt);
            }
        }
    }
}

$workbook->send('test.xls');
$workbook->close();
?>

【问题讨论】:

  • 请告诉我们您遇到的具体问题是什么?
  • 我使用了上面的脚本。在 localhost (PC) 中它工作正常,当我上传到服务器时它会生成 0 字节 xls 文件。但是当我在服务器中使用脚本时它不会显示任何错误消息...它只是生成了 0 字节大小的 xls 文件。当我打开文件时,它显示无法读取文件警告框。请帮帮我
  • 尝试授予目录phpxls的权限
  • 我给了目录phpxls的权限,什么也没发生

标签: php pear spreadsheet


【解决方案1】:

您正在尝试读取尚未创建的文件:

echo file_get_contents('Test.xls');

尝试取消注释以下行:

//$workbook->send('test.xls');
//$workbook->close();

我没有深入研究 Spreadsheet_Excel_Writer 但我认为这些行正在创建和保存您尝试访问的文件:)

【讨论】:

  • 我取消注释这些行,但我仍然遇到同样的问题
  • 您是否检查过网络服务器是否有权创建/更新文件?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-09
  • 1970-01-01
  • 1970-01-01
  • 2022-01-24
  • 2022-09-27
  • 2022-01-10
  • 2014-09-21
相关资源
最近更新 更多