这是我从数据库表中获取数据的代码
$sql = "select * from tbl_input_values where 1";
$result = mysql_query($sql);
$resultRows = mysql_num_rows($result);
下面是我用来下载excel格式文件的头文件:
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=test.xls");
header("Pragma: no-cache");
header("Expires: 0");
获取记录的代码如下:
if($resultRows>0){
$sep = "'t"; //tabbed character
for ($i = 0; $i < mysql_num_fields($result); $i++) {
echo mysql_field_name($result,$i) . "'t";
}
print("'n");
while($row = mysql_fetch_row($result)){
$schema_insert = "";
for($j=0; $j<mysql_num_fields($result);$j++){
if(!isset($row[$j]))
$schema_insert .= "NULL".$sep;
elseif ($row[$j] != "")
$schema_insert .= "$row[$j]".$sep;
else
$schema_insert .= "".$sep;
}
$schema_insert = str_replace($sep."$", "", $schema_insert);
$schema_insert = preg_replace("/'r'n|'n'r|'n|'r/", " ", $schema_insert);
$schema_insert .= "'t";
print(trim(str_replace(',', " ", $schema_insert)));
print "'n";
}
}
代码运行正常
所以现在我必须通过电子邮件发送这个附件,而不是下载它。意味着当用户想要创建excel文件时,excel将通过电子邮件发送到给定的电子邮件id。
那么使用电子邮件功能的更好方式是什么呢?
Possible It can help you ....
if($resultRows>0){
$sep = "'t"; //tabbed character
for ($i = 0; $i < mysql_num_fields($result); $i++) {
echo mysql_field_name($result,$i) . "'t";
}
print("'n");
while($row = mysql_fetch_row($result)){
$schema_insert = "";
for($j=0; $j<mysql_num_fields($result);$j++){
if(!isset($row[$j]))
$schema_insert .= "NULL".$sep;
elseif ($row[$j] != "")
$schema_insert .= "$row[$j]".$sep;
else
$schema_insert .= "".$sep;
}
$schema_insert = str_replace($sep."$", "", $schema_insert);
$schema_insert = preg_replace("/'r'n|'n'r|'n|'r/", " ", $schema_insert);
$schema_insert .= "'t";
print(trim(str_replace(',', " ", $schema_insert)));
print "'n";
}
file_put_contents('$path_to_excelfile', $schema_insert);
}
$to = 'youraddress@example.com';
$subject = 'Test email with attachment';
$random_hash = md5(date('r', time()));
$headers = "From: webmaster@example.com'r'nReply-To: webmaster@example.com";
$headers .= "'r'nContent-Type: multipart/mixed; boundary='"PHP-mixed-".$random_hash."'"";
$attachment = chunk_split(base64_encode(file_get_contents('path to file')));
mail( $to, $subject, $message, $headers );
REF http://webcheatsheet.com/PHP/send_email_text_html_attachment.php
**Code to create excel in php:**
$dtime=date('Y-m-d H-i-s');
$dtimeFile=date('Y-m-d-H-i-s');
$headerTab ="Col1 't Col2't Col3'n";
$rowRecords='';
$rowRecords .=preg_replace("/'r|'n|'t/"," ",$Col1)."'t".preg_replace("/'r|'n|'t/", " ",$Col2)."'t".preg_replace("/'r|'n|'t/", " ",Col3). "'t'n";
date_default_timezone_set('America/Los_Angeles');
$filename="Your File Name-".$dtimeFile.".xls";
$path='/pathOfFile/';
$csv_handler = fopen ($path.$filename,'w');
fwrite ($csv_handler,$headerTab);
fwrite ($csv_handler,$rowRecords);
fclose ($csv_handler);
**Code to send html email with attached excel in php:**
$file = $path.$filename;
$file_size = filesize($file);
$handle = fopen($file, "r");
$content = fread($handle, $file_size);
fclose($handle);
$content = chunk_split(base64_encode($content));
$uid = md5(uniqid(time()));
$headers = "From: from@gmail.com"."'r'n";
$headers.= "Bcc: bcc@gmail.com"."'r'n";
$headers.= "MIME-Version: 1.0'r'n";
$headers.= "Content-Type: multipart/mixed; boundary='"".$uid."'"'r'n'r'n";
$headers .= "This is a multi-part message in MIME format.'r'n";
$headers .= "--".$uid."'r'n";
$headers .= "Content-type:text/html; charset=iso-8859-1'r'n";
$headers .= "Content-Transfer-Encoding: 7bit'r'n'r'n";
$headers .= $msg."'r'n'r'n";
$headers .= "--".$uid."'r'n";
$headers .= "Content-Type: application/octet-stream; name='"".$filename."'"'r'n";
$headers .= "Content-Transfer-Encoding: base64'r'n";
$headers .= "Content-Disposition: attachment; filename='"".$filename."'"'r'n'r'n";
$headers .= $content."'r'n'r'n";
$headers .= "--".$uid."--";
$date=date("Y-m-d");
if(mail($to,"Mail heading--".$date,$msg,$headers)){
echo "Mailed successfully";
}
else
{
echo "Mailed couldn't be sent";
}