[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 254
  • Last Modified:

How to auto-create and save spreadsheet document on server.

I am writing a PHP script that pulls data from a MySQL table and converts it into an Excel spreadsheet. This process functions correctly -- I can output it as a downloadable file to the user's browser.

Now, the final step is what I am having trouble with. Instead of outputting the the browser, this script needs to SAVE the data as an excel file on the web server. The script will be run nightly as a cron job.

I am attaching a code snippet that shows how I am combining the headers and the data ($data) for the output.

Instead of outputting to the browser, how can I output to a saved file on the server? Thanks!
header("Content-type: application/xls");
header("Content-Disposition: attachment; filename=Beta_Product_Master_Table.xls");
header("Pragma: no-cache");
header("Expires: 0");
echo $header."\n".$data;s

Open in new window

  • 2
1 Solution
I could possible be missing the point here, but if you want to save the file (and have the data part figured out already) though a cron job, you could do the following...

(Note: I've only actually done this with PDFs)

See Code Snippet...

Then in SSH:

# crontab -e
 ...browse to bottom of crontab...
0            23      *       *       *       lynx -dump http://www.domain.com/target.php >/dev/null 2>&1
(ZZ to save)

This will execute the target script 11:00 PM nightly.
$fname = "/path/to/domain.com/file/saves/xls_file_".mktime().".xls"; //added timestamp to make unique
$data = "data\n data\n data\n";
$file = fopen($fname, "w");
fwrite($file, $data);
mail('your@email.com', 'new XLS created', "$file was created on server");
You will need to give write permissions to both the 
script calling fopen() as well as the directory which 
you would like to save the file. Cheers.

Open in new window

mapennAuthor Commented:
Perfect. Thank You so much!
mapennAuthor Commented:
Thanks it helps a lot

Featured Post

How to Use the Help Bell

Need to boost the visibility of your question for solutions? Use the Experts Exchange Help Bell to confirm priority levels and contact subject-matter experts for question attention.  Check out this how-to article for more information.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now