Data uit webform als xls mailen e-mailadres?

Status
Niet open voor verdere reacties.

cherine

Gebruiker
Lid geworden
16 mei 2008
Berichten
12
Goedenavond :)

Is het mogelijk om data die de gebruiker invoert in een webformulier te laten exporteren naar een excelbestand (bij voorkeur .xls) en dit per mail naar het e-mailadres van de sitebeheerder te sturen?

Ik weet dat er iets bestaat om een excelbestand te tonen aan de gebruiker (PHPExcel): dit is echter precies het tegenovergestelde van wat ik zoek. Data simpelweg in een database opslaan voldoet ook niet helemaal aan de behoefte.


Is dit mogelijk met PHP? Kan iemand mij een duwtje in de juiste richting geven?

Thx! :thumb:

Gr.
Cherine
 
Laatst bewerkt:
wist je dat je .csv ook kan ondersteunen
elke windows gaat dit openen met exel.
kan je gelijk een explode uitvoeren en lijn naar bestand schrijven en klaar is kees.
 
Hi kenikavanbis,

Bedankt voor je reactie.
Zou je dit iets meer toe kunnen lichten? Ik kan me eerlijk gezegd niet voorstellen hoe ik dit aan zou moeten pakken. Dit ligt vast aan mij hoor :confused:

Ik weet wel dat het waarschijnlijk makkelijker uitvoerbaar zou zijn met een .csv, maar als het even kan wil ik een .xls als uitvoer.
 
cvs staat voor

comma separated value

dus

voornaam,achternaam, enz

dus het file wordt
hans,klaassen,1976,2005
 
I know: dit voldoet niet helemaal aan hetgeen ik wil bereiken.
 
Mijn vorige class is door php ingebruik genomen daardoor heb ik plus editie moeten maken
met meerdere functies vrij te gebruiken
cvs plus hanteert deze standaart naam,adress,[complexelement1,complexelement2],meer info


AANROEP
PHP:
	$opslagplaats = new csv_plus($FILE_ref,$this->forminf['name'].$faze.".csv");
	$isopslagplaats = $opslagplaats->is_readytouse();
		if($this->isopslagplaats){
				if($dovalidation){
					$validator = new valid();//LET OP JE HEB DEZE CLASS NIET DUS ZELF IETS SCHRIJVEN
					if($validator->is_valid()){
						if ($this->opslagplaats->save_line($data)){
							return "saved";
						}						
					}else{
						//only if there is a error
						return $validator->geterrors();
					}
				}else{
					return "must not validate";
				}
			}else{
				return "[error]DATA.inc place to save data not ready";
			}
DE NODIGE CLASS
PHP:
 class updates komen op onderstaande link @repos
<?PHP
 /**
 * @author Lieven Roegiers
 * @copyright 2009 
 * @CMS autosite
 * opensource http://code.google.com/p/autosite/
 */
if (!function_exists('csv_plus')){//include_once its when it is include in the php lib
class csv_plus implements tosave{
	private	$Delimiter=',';
	private $maxfilesize=1000;
	private $filelocation;
    private $minlivetime =0;
	private $file;
	private $errornr;
	/**
	* @author Lieven Roegiers
	* @copyright 2007 refactor 2009
	*/
	public function __construct($pathname,$filelocation,$lifetime = 0){
		$this->filelocation=$pathname.$filelocation;
		$this->minlivetime = $lifetime;//(1 * 1 * 60 * 60);
	}
	private function open($mode='a+'){
		return($this->is_readytouse()&& $this->file = fopen($this->filelocation,$mode)); //File!found E53 
	}
	function save_line($arrData,$del_oldlines=true){
		if ($del_oldlines){
			$this->del_oldlines();
		}
		$timestamp = ($this->minlivetime>0)?(time()+$this->minlivetime).$this->Delimiter:"";
		$datastring =" ".$timestamp.implode($this->Delimiter,$arrData)."\n";//space on the front is for search
		return ($this->open()&& fputs($this->file, $datastring));
	}
	public function is_readytouse(){
		return(isset($this->filelocation)&& is_file($this->filelocation));
	}
	/**
	* @param datatype $source
	*/
	private function bakup($source,$destprefix=".BAK"){
		return (is_file($source) && (filesize($source)>0)&& !copy($source, $source.$destprefix));
	}
	/**
	* 
	*/
	private function del_oldlines(){
		if ($this->is_readytouse()&& filesize($this->filelocation)>$this->maxfilesize){
			if ($this->bakup($this->filelocation)){//rename($path.$file, $path.$bakfile);
				unlink ($this->filelocation);
			}
			$lines = file($this->filelocation.".BAK");
			if (!$this->open()) {
				foreach ($lines as $line_num => $line){
					$kkey=explode(',', $line);
					if((time() > $kkey[0])){//releastijd
					}elseif(fputs($file,$line)){//infileplaatsen
					}else {//echo "error write bakup";
					}
				}		
			}
		}	
	}
	function HTML_listvieuw($Fname){
		$row = 1;
		$fp = fopen ($fname,"r");
		while ($data = fgetcsv($Fname,1000,",")) {
		    $num = count ($data);
		    print "<p> $num velden in regel $row: <br>\n";
		    $row++;
		    for ($c=0; $c < $num; $c++) {
		        print $data[$c] . "<br>\n";
		    }
		}	
	}
	/*function HTML_table($Fname){
		$row = 1;
		$fp = fopen ($fname,"r");
		while ($data = fgetcsv($Fname,1000,",")) {
		    $num = count ($data);
		    print "<p> $num velden in regel $row: <br>\n";
		    $row++;
		    for ($c=0; $c < $num; $c++) {
		        print $data[$c] . "<br>\n";
		    }
		}	
	}*/
	function find_line($findstring,$resul=1){
		if ($this->open()){
			while (!feof($this->file))
	    		{$line = fgetcsv($this->file,1024,",");
	    			if(is_array ($line)){
						if (!$pos = array_search($findstring,$line )){ 
	     				//print_r($line); //niet gekozen items	
	     				}else{
	     					return  $line ;
	     					exit;	
						}
	     			}else{
						//fun_error(381);//Invalid array
					}
	 		$line=""; 
			}
		}
	}
	function __destruct(){
		//fclose ($this->file);
	}	 	
}
}
?>
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan