PDA

View Full Version : کدهای html در فایل excel



baran.f.a
دوشنبه 18 خرداد 1394, 11:45 صبح
سلام
برنامه ای دارم که از نتیجه ی کوئری فایل اکسل می سازه مشکلم اینه که در فایل اکسل کد html چاپ می شه به خاطر همین من داده های نوشته شده در فایل excel را نمی بینم تا زمانی که در notepad کدهای html رو حذف می کنم لطفا بگین چیکار کنم تا این کدها تو فایل excel چاپ نشه .

arenaw
دوشنبه 18 خرداد 1394, 12:25 عصر
سلام. قبل از نوشتن فایل اکسل، این هدر ها رو ست کنید:

header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="document.xls"');
header('Cache-Control: max-age=0');
header('Cache-Control: max-age=1');header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header ('Cache-Control: cache, must-revalidate');
header ('Pragma: public');

baran.f.a
دوشنبه 18 خرداد 1394, 12:41 عصر
سلام ممنون از پاسختون ولی این هدر و در حال حاضر دارم استفاده می کنم ولی هیچ تاثیری نداره . بازم کد html در فایل اکسل نوشته می شه .

farzad-kh
دوشنبه 18 خرداد 1394, 14:41 عصر
کد فایل php رو میشه کامل بزارید؟

baran.f.a
دوشنبه 18 خرداد 1394, 14:52 عصر
include_once('jdf.php');
$date_base=jdate('Ym01','','','','en');


mb_http_input("utf-8");
mb_http_output("utf-8");
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="01simple.xls"');
header('Cache-Control: max-age=0');
// If you're serving to IE 9, then the following may be needed
header('Cache-Control: max-age=1');

// If you're serving to IE over SSL, then the following may be needed
header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
header ('Pragma: public');

/** Loop through the result set 1.0 */
require_once 'connect.php';
connecttodb();
mysql_query('SET NAMES utf8');
$sql="select t1.*,psp.psp_name
from ( select transaction.psp_id as psp, psp.psp_name as `name`,transaction.installation_date,transaction.t echnician_id as `technician`,transaction.serial_code ,merchant.address,merchant.mobile_number,merchant. phone_number,merchant.business_name,merchant.city, transaction.merchant_id,merchant.manager_name,merc hant.manager_family,user.user_family,user.u_id
from transaction
LEFT JOIN merchant
on merchant.m_id=transaction.merchant_id
INNER JOIN psp
on transaction.psp_id=psp.id
LEFT JOIN pos
on pos.serial_code=transaction.serial_code
INNER JOIN user
on user.u_id=transaction.technician_id
where
transaction.PM_date ='NULL'
and transaction.installation_date!=' ' and (transaction.installation_date < $date_base)
and transaction.technician_id='".mysql_real_escape_string($_REQUEST['tid'])."'
) t1 , psp
where psp_name=(select psp_name from psp where id=(select psp_project as psp_code from psp where id=t1.psp ))
and psp_name= '".mysql_real_escape_string($_REQUEST['pid'])."'
";

$result = mysql_query($sql) or die (mysql_error());

$company="نام شرکت";
$project="نام پروژه";
$merchant="شماره پذیرنده";
$serial="شماره سریال";
$business_name="نام فروشگاه";
$installation="تاریخ نصب";
$city="شهر";
$address="آدرس";
$mobile="تلفن همراه";
$phone="تلفن ثابت";
$name="نام";
$family="نام خانوادگی";
$column_name = $company . ";" . $project . ";" . $merchant . ";" . $serial . ";".$business_name .
";" . $installation . ";" . $city . ";" . $address. ";" . $mobile . ";" . $phone . ";"
. $name . ";" . $family . "\n";
echo $column_name;

for($j=0; $j<mysql_num_rows($result); $j++)
{
$row=mysql_fetch_assoc($result);
echo $row['psp_name'].";". $row['name'].";". $row['merchant_id'].";". $row['serial_code'].";"
. $row['business_name'].";" . $row['installation_date'] .";" . $row['city'] .";"
. $row['address'].";" . $row['mobile_number'].";" . $row['phone_number'].";" . $row['manager_name'].";"
. $row['manager_family']."\n";
}

farzad-kh
دوشنبه 18 خرداد 1394, 14:57 عصر
این خط رو


header('Content-Type: application/octet-stream');
جایگزین این خط کن :



header('Content-Type: application/vnd.ms-excel');

arenaw
دوشنبه 18 خرداد 1394, 15:01 عصر
1 - تمام require ها و include ها رو به بالای فایل انتقال بدین
2 - دستور OB_END_CLEAN(); رو قرار بدین
3 - هدر ها رو ست کنید.
4 - شروع به echo کردن بکنید.

baran.f.a
دوشنبه 18 خرداد 1394, 15:03 عصر
این کارو کردم جواب نمی ده. حتی از توابع phpexcel هم استفاده کردم ولی کار نمی کنه .

farzad-kh
دوشنبه 18 خرداد 1394, 15:11 عصر
یه خروجی اکسل رو بزارید ببینیم

baran.f.a
دوشنبه 18 خرداد 1394, 15:16 عصر
خوب اگه با اکسل باز کنم یه صفحه ی سفید دارم که حتی سلول بندی هم نیست اما اگه با notepad بازش کنم اینطوریه :


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>

</body>
</html>
نام شرکت;نام پروژه;شماره پذیرنده;شماره سریال;نام فروشگاه;تاریخ نصب;شهر;آدرس;تلفن همراه;تلفن ثابت;نام;نام خانوادگی




مشکل دقیقا به خاطر وجود کد های html وقتی حذفشون می کنم اطلاعاتو تو فایل اکسل می بینم .

farzad-kh
دوشنبه 18 خرداد 1394, 15:23 عصر
همه هدرها رو ببرید اول بعد اینکلود ها رو انجام بدید

baran.f.a
دوشنبه 18 خرداد 1394, 15:33 عصر
نه جواب نمی ده یه سوال شما درخواست فایل اکسلو توی یه صفحه ی دیگه زدید ؟؟

farzad-kh
دوشنبه 18 خرداد 1394, 15:41 عصر
نه اونجا مشکل خودم بود بابت نوع متغیر اکسل....

baran.f.a
سه شنبه 19 خرداد 1394, 08:44 صبح
نه منظورم کدهای ساخت فایل اکسله این کدهایی که که نوشتید توی همون صفحه ای که درخواست فایل اکسل دادینه ؟ یعنی توی برنامه شما بعد از submit فایل اکسلو می سازه ؟

farzad-kh
چهارشنبه 20 خرداد 1394, 01:16 صبح
برای من یه فایل php هست که وقتی فراخونی میشه یه فایل اکسل رو برای دانلود در اختیار کاربر قرار میده...