21

I have a big excel file that looks like this:

enter image description here

I would like to put each row into an array.

Is this possible to access the first row's order id like this?

$result[0][2] // returns 7432

Assuming the actual first row that gives prefix for the columns' name is not present.

How could I do that?

5 Answers 5

24

I recommended to use PHPEXCEL library

https://github.com/PHPOffice/PHPExcel

you can see an example

Update: Now the alternative to this library is phpspreadsheet

Sign up to request clarification or add additional context in comments.

1 Comment

looks like PHPExcel - DEAD
19

Save the spreadsheet as a CSV, then use PHP's built-in CSV functions. See the sample code here:

http://php.net/manual/en/function.fgetcsv.php

2 Comments

This does not answer the question. It's asked to read Excel directly, not CSV.
Although it does not answer, in a literal way, the question, it solves the problem, though.
9

May be my answer is too simple (for one time work only), but I use the CONCATENATE "Function" in excell. The last cell on each row will have concatenation function, like this:

=CONCATENATE("['";A2;"'=>['data1' => '";B2;"', 'data2' => '";C2;"'],")

where:

column "A" is ID of something;
column "B" is first characteristic;
column "C" is second characteristic;
etc.

Then just copy and paste function results to Your script or config file, and do not forget the first and the last bracket.

Comments

5

This works for me:

$content = file_get_contents($your_file_path); 
$lines = array_map("rtrim", explode("\n", $content));

Comments

2

Since the PHPExcel library deprecated they've released "PhpSpreadsheet"

This will help PhpSpreadsheet

1 Comment

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.