PHP 将 Excel 文件从 ".xls"转换为 ".xlsx"

标签 php html excel phpmailer

我在女巫的一个 php 项目中工作,我必须发送一封带有 excel 附件的邮件,因为我使用的是 phpmailer。 我对以下代码生成的 excel 文件的格式有疑问。

$table.='<table></table>';
    if (file_exists("EXCEL REPORT/".$subject." ".date("M-d-Y").".xls")) 
    {
        unlink("EXCEL REPORT/".$subject." ".date("M-d-Y").".xls");
        file_put_contents("EXCEL REPORT/".$subject." ".date("M-d-Y").".xls", $table); 
        sendmailatt($to,$cc,$subject." ".date("M-d-Y"),"mail",<br>REGIA","EXCEL REPORT/".$subject." ".date("M-d-Y").".xls");
    } 
    else {
       file_put_contents("EXCEL REPORT/".$subject." ".date("M-d-Y").".xls", $table); 
       sendmailatt($to,$cc,$subject." ".date("M-d-Y"),"Questo e' un invio automatico del venduto per agent.<br><br>Saluti,<br>REGIA","EXCEL REPORT/".$subject." ".date("M-d-Y").".xls");
    }

我想在发送邮件之前将附件转换为 excel 2007... 有什么简单的方法可以做到这一点

最佳答案

这是一个使用 PHPExcel .xls 转换为 .xlsx 的代码示例(它可能已被弃用,但它仍然可以正常工作,尤其是对于Excel5 到 Excel2007 的简单转换):

<?php

    $xls_to_convert = 'test.xls';

    //------------------------------------------------------------------------------------

    error_reporting(E_ALL);
    ini_set('display_errors', TRUE);
    ini_set('display_startup_errors', TRUE);
    define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');

    //These four lines are the entire script
    require_once dirname(__FILE__) . '/PHPExcel/Classes/PHPExcel/IOFactory.php';
    $objPHPExcel = PHPExcel_IOFactory::load(dirname(__FILE__) . '/' . $xls_to_convert);
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
    $objWriter->save(str_replace('.xls', '.xlsx', $xls_to_convert));

    echo 'File ' . str_replace('.xls', '.xlsx', $xls_to_convert) . ' created in ' , getcwd() , EOL;

上面的例子假设:

1) PHPExcel 安装到您的 Web 文件文件夹中(例如 home/username/public_htmlxampp/htdocsvar/www、等等)

2) test.xls 也位于同一个文件夹中

3) 使用最新(最终)版本的 PHPExcel 1.8 进行测试

4) 代码取自PHPExcel/Examples/07reader.php

非常感谢 Mark Baker用于 PHPExcel 和 PhpSpreadsheet 应用程序!

关于PHP 将 Excel 文件从 ".xls"转换为 ".xlsx",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36198227/

相关文章:

javascript - 如何使用 3 秒后消失的 jQuery 创建对话框?

html - appLinks 不会从电子邮件中打开 iPhone 应用程序

c# - CSS 标题位置固定删除间距

javascript - 单击按钮时更改图像

javascript - Protractor : xlsx-template Error cannot read property 'length' of undefined

sql - 我正在将 348k 行数据从 Excel 导入到 VB.net SQL。我得到这个错误 : Timeout expired

php - 使用简单的 HTML DOM 解析器解析 JSON?

javascript - 通过 session 切换登录和注销

php - LDAP 过滤器 : getting only users updated since given date

JavaFX Apache POI Excel 登录程序