5

I want to write data in a form to a csv file. I have used the following code:

$data = array();
$data['name'] = $this->getRequest()->getParam('name');
$data['company'] = $this->getRequest()->getParam('company');
$data['email'] = $this->getRequest()->getParam('email');
$data_row[] = $data;

$fileName = "example.csv";

$var_csv = new Varien_File_Csv();

$var_csv->saveData($fileName, $data_row);

But it is not working. Where will be the location of the csv file. Please help.

  • whats your $fileName ? – Priyank Jun 30 '17 at 9:51
  • $fileName is the csv file to where I want to write the data – Vindhuja Jun 30 '17 at 9:52
  • yes give full path of your filepath in and in $filename it will be saved there – Priyank Jun 30 '17 at 9:53
  • I want to save this csv file to my root directory. So what do I need to do? – Vindhuja Jun 30 '17 at 9:54
  • I have added an answer – Priyank Jun 30 '17 at 9:58
4

Set Dir path

$path = Mage::getBaseDir('var') . DS . 'export' . DS;
$name = 'yourFileName';
$file = $path . DS . $name . '.csv';

and save it

$var_csv->saveData($file, $data_row);

so it will be saved in <your magento>/var/export/yourFileName.csv

EDIT

If you want to save it in your magento root dir

$path = Mage::getBaseDir();
  • Thank you.It worked.One more question ,how can I append the data to the existing csv on submitting the form each time.Please help. – Vindhuja Jun 30 '17 at 10:20
  • You can get data from existing file and then append your new data in it and save your csv file. – Priyank Jun 30 '17 at 10:30
3

Give this coded a try:

<?php
    error_reporting(E_ALL); ini_set('display_errors', 1);
    $data = array();
    $data['name'] = 'test';
    $data['company'] = 'ghgh';
    $data['email'] = 'hgh@ghgh.com';
    $data_row[] = $data;
    $fileName = "example.csv";
    if(!file_exists($fileName)){
        $file = fopen($fileName, 'w') or die("Can't create file");
    } else {
        $file = fopen($fileName,"w");
    }

    foreach ($data_row as $data)
    {
        fputcsv($file,$data);
    }

    fclose($file);

?>

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.