2013-02-18 103 views
1

我有一个上传页面供用户上传excel文件,这是任务请求类型的一部分。我试图在提交任务时拥有它,您可以单击一个链接,然后显示他们上传的excel文件的html表格。 PHP-excel阅读器可以很好地工作,但它不支持xlsx文件。我正在看PHPExcel,但不能完全理解我如何处理这些输出并制作一个html表格。我也担心我无法在PHP中支持ZipArchive。解析PHPExcel文件为HTML

有谁知道他们已经将PHPExcel示例转换为html表格的示例吗?

编辑:

下面的代码是伟大的工作。它在脚本运行时创建一个新文件。我无法弄清楚如何正确地重命名文件。目前它将包含以下代码的实际phpexcel.php文件重命名为phpexcel.htm。我想以$inputFileName的名称为例,并将其重命名为exceluploads/Book7.htm。我不知道这是否WS作为改变$objWriter->save(path/name.htm);一样简单,但没有工作,我收到:

Warning: fopen(/exceluploads/Book7.htm) [function.fopen]: failed to open stream: No such file or directory in /var/www/Classes/PHPExcel/Writer/HTML.php on line 164 

Fatal error: Uncaught exception 'Exception' with message 'Could not open file /exceluploads/Book7.htm for writing.' 

代码:

<?php 

    /** Error reporting */ 
    error_reporting(E_ALL); 

    /** Include PHPExcel */ 
    require_once dirname(__FILE__) . '/Classes/PHPExcel.php'; 


    // Create new PHPExcel object 
    echo date('H:i:s') , " Create new PHPExcel object" , PHP_EOL; 
    $objPHPExcel = new PHPExcel(); 

    $inputFileName = 'exceluploads/Book7.xlsx'; 
    $objPHPExcel = PHPExcel_IOFactory::load($inputFileName); 

    echo date('H:i:s') , " Write to HTML format" , EOL; 
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'HTML'); 
    $objWriter->setSheetIndex(0); 
    //$objWriter->setImagesRoot('http://www.example.com'); 
    $objWriter->save(str_replace('.php', '.htm', __FILE__)); 

    echo date('H:i:s') , " File written to " , str_replace('.php', '.htm', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; 


    // Echo memory peak usage 
    echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true)/1024/1024) , " MB" , EOL; 

    // Echo done 
    echo date('H:i:s') , " Done writing file" , EOL; 
    echo 'File has been created in ' , getcwd() , EOL; 

    ?> 
+2

你看了17htm Tests/Examples目录中的l.php? – 2013-02-18 16:21:02

+0

我看到它,但我不确定为什么我很困惑,以至于如何让PHPExcel读取某些文件。我到处寻找,无法弄清楚我可以告诉它读取某个excel文件的位置。 – dcclassics 2013-02-18 16:41:48

+1

/exceluploads/Book7.htm!== exceluploads/Book7.htm - 这是文件系统路径,而不是Web服务器路径 – 2013-02-18 20:58:42

回答

8

要读取文件:

$inputFileName = 'example.xls'; 
$objPHPExcel = PHPExcel_IOFactory::load($inputFileName); 

要写一个文件:

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'HTML'); 
$objWriter->save('example.html'); 
+0

我编辑了我的原始文章,似乎没有必要发布一个新的,您的示例工作很好,我只是有一个命名文件的问题。 – dcclassics 2013-02-18 18:27:43