Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
327 views
in Technique[技术] by (71.8m points)

php - Unable to load excel file in Yii2

I am using PHP Spreadsheet to read an excel file

$inputFileName = '/usaid/Files/Installation_Report.xlsx';
$reader = new PhpOfficePhpSpreadsheetReaderXlsx();

try
{
    /** Load $inputFileName to a Spreadsheet Object  **/
    $spreadsheet = $reader->load($inputFileName);

    print_r($spreadsheet);
    exit();
} catch (Exception $exception) {
    print_r($exception->getMessage() . $exception->getFile());
    exit();
}

But I am getting below error

File "/usaid/Files/Installation_ Report.xlsx" does not exist.F:xampphtdocsusaidvendorphpofficephpspreadsheetsrcPhpSpreadsheetSharedFile.php

The path is

F:xampphtdocsusaidFiles

Update 1

As per this answer I have tried to change the code

 public function actionRun()
{

    $inputFileName = 'usaid/Files/Installation_Report.xlsx';

    /**  Identify the type of $inputFileName  **/
    $inputFileType = PhpOfficePhpSpreadsheetIOFactory::identify($inputFileName);

    try
    {

        /**  Create a new Reader of the type that has been identified  **/
        $reader = PhpOfficePhpSpreadsheetIOFactory::createReader($inputFileType);

        /**  Load $inputFileName to a Spreadsheet Object  **/
        $spreadsheet = $reader->load($inputFileName);

        /**  Convert Spreadsheet Object to an Array for ease of use  **/
        $schdeules = $spreadsheet->getActiveSheet()->toArray();
        //$reader = PhpOfficePhpSpreadsheetIOFactory::createReader($inputFileType);

        var_dump($schdeules);
        die();
    }
    catch (Exception $exception)
    {
        print_r($exception->getMessage() . $exception->getFile());
        exit();
    }


}

Now I am getting

enter image description here

InvalidArgumentException File "usaid/Files/Installation_Report.xlsx" does not exist.

Note: Tried even with $inputFileName = Yii::$app->basePath.'FilesInstallation_Report.xlsx'; but same result

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
realpath(Yii::$app->basePath).DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'Files'.DIRECTORY_SEPARATOR.'Installation_Report.xlsx';
  • use the constant DIRECTORY_SEPARATOR instead of '/'.
  • the result should be : "F:xampphtdocsusaidFilesInstallation_Report.xlsx"

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...