如何在Symfony2 liuggio Excel中读取Excel中的数据

时间:2012-12-18 11:03:59

标签: excel symfony upload

您好我是Symfony2的新手,我需要将Excel文件上传到MYSQL数据库吗? 任何人都可以给我一个如何做的例子吗? 谢谢 拉基

2 个答案:

答案 0 :(得分:1)

首先在您的composer.json文件中添加:“CodePlex / PHPExcel”:“1.7.7”并进行更新。

在PHPExcel内容和代码之间添加一个类。类似的东西:

namespace Cerad\ArbiterBundle\Format;

class Excel
{
    protected function createReaderForFile($fileName,$readDataOnly = true)
    {
        // Most common case
        $reader = new \PHPExcel_Reader_Excel5();

        $reader->setReadDataOnly($readDataOnly);

        if ($reader->canRead($fileName)) return $reader;

        // Make sure have zip archive
        if (class_exists('ZipArchive')) 
        {
            $reader = new \PHPExcel_Reader_Excel2007();

            $reader->setReadDataOnly($readDataOnly);

            if ($reader->canRead($fileName)) return $reader;
        }

        // Note that csv does not actually check for a csv file
        $reader = new \PHPExcel_Reader_CSV();

        if ($reader->canRead($fileName)) return $reader;

        throw new Exception("No Reader found for $fileName");

    }
    public function load($fileName, $readDataOnly = true)
    {
        $reader = $this->createReaderForFile($fileName,$readDataOnly);

        return $reader->load($fileName);
    }
}

现在在您的代码中,您将拥有类似的内容:

$excel = new Excel();
$reader = $excel->load('SomeFileName.xls');

$ws = $reader->getSheet(0);

$rows = $ws->toArray();

然后离开。

答案 1 :(得分:1)

Cerad的例子是一个选项,但它不使用该bundle,也不能使用mysql, 该bundle是一个公开服务的简单依赖项, 如果必须将数据从excel存储到mysql, 你需要先在某处上传文件,然后再 用服务读取文件, $ excelObj = $ this-> get('xls.load_xls5') - > load($ filename); 然后你必须阅读PHPExcel的文档

希望它有所帮助