Creating Excel Files with PHP

I want to be able to create excel files with my php code and have the excel file saved to a location on the server.
I won't want it opening into excelon the users side I just want to create the excel file on the server side and have it stored somewhere.

Does anyone know of a tutorial on how to do this?


Who is Participating?
I generate Excel files from PHP all the time and use the PEAR  Spreadsheet_Excel_Writer. It does a very nice job and has some very useful functions that simplifying the whole process of generating/writing/sending the excel file.

I looked into doing that for a little while, it didn't really work
If you're just handling data, why not just make a  csv?  Excel can read csv just fine (comma separated values)
It's possible, but as pjargon says, seems prone to errors.  If you want to try it anyway, here's a couple places to look:
Cloud Class® Course: SQL Server Core 2016

This course will introduce you to SQL Server Core 2016, as well as teach you about SSMS, data tools, installation, server configuration, using Management Studio, and writing and executing queries.

unreal400Author Commented:
Whats the easiest way to write out the files to the server.  I've never worked with creating files. just creating the webpages with php.  Can you point me to an example.
Should be pretty simple file output, yes?
thx google:

You may have to mess with permissions
I have found the easiest is a TAB delimted file.
Since sometimes values need to contain a ','
if you save everything into arrays, you can then write them to a file using serialize

and read them using unserialize
Boris AranovichSenior Software EngineerCommented:
About writing to a file - directly from help on fwrite():

$filename = 'test.txt';
$somecontent = "Add this to the file\n";

// Let's make sure the file exists and is writable first.
if (is_writable($filename)) {

   // In our example we're opening $filename in append mode.
   // The file pointer is at the bottom of the file hence
   // that's where $somecontent will go when we fwrite() it.
   if (!$handle = fopen($filename, 'a')) {
        print "Cannot open file ($filename)";

   // Write $somecontent to our opened file.
   if (!fwrite($handle, $somecontent)) {
       print "Cannot write to file ($filename)";
   print "Success, wrote ($somecontent) to file ($filename)";
} else {
   print "The file $filename is not writable";
Marcus BointonCommented:
Commas inside fields is not a problem with CSV, because field content is usually quoted, thus escaping the commas. In some instances it will even allow line breaks inside fields. CSV for excel works very nicely as long as you're not doing anything that's excel specific, like drawing graphs or running macros, and is very simple to do. I generate Excel-tagged CSV for downloads - the important thing is to give it the correct MIME type for it to be picked up by Excel, which is application/msexcel.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.