PDA

View Full Version : سوال: مشکل در خروجی اکسل یا csv در php



farzad-kh
یک شنبه 17 خرداد 1394, 22:43 عصر
سلام.. من با این کد خروجی اکسل یا csv میگیرم و با زبان فارسی هم مشکلی ندارم منتها اطلاعات هر خط رو فقط داخل یه سلول ذخیره میکنه از \t یا t یا , استفاده کردم ولی همش این مشکلو دارم نمیدونم چیکار کنم برای خط بعدی از \n استفاده میکنم.
اینم کد منه :

<?php
$xls_filename="t1";
mb_http_input("utf-8");
mb_http_output("utf-8");
include_once('assets/includes/config.php');
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=file.csv');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
echo "\xEF\xBB\xBF";

mysql_query("SET CHARACTER SET utf8");
mysql_query("SET NAMES utf8_persian_ci");
$q="select name,family,mail,username,tel from net_user";
$qq=mysql_query($q);
$name="نام";
$family="نام خانوادگی";
$mail="ایمیل";
$tel="تلفن";
$csvData = $name . "," . $family . "," . $mail . "," . $tel ."\n";
echo $csvData;
for($j=0; $j<mysql_num_rows($qq); $j++)
{
$row=mysql_fetch_assoc($qq);
echo $row['name'].",". $row['family'].",". $row['mail'].",". $row['username'].",". $row['tel']."\n";
}
?>

baran.f.a
دوشنبه 18 خرداد 1394, 07:58 صبح
سلام بجای ',' از ';' استفاده کنید .



echo $row['name'].";". $row['family'].";". $row['mail'].";". $row['username'].";". $row['tel']."\n";

baran.f.a
دوشنبه 18 خرداد 1394, 13:52 عصر
ببخشید یه سوال موقعی که فایل اکسل رو براتون می سازه کد html رو هم تو فایل می نویسه ؟؟ یا شما فقط اطلاعات دیتابیستونو می بینید ؟

farzad-kh
دوشنبه 18 خرداد 1394, 14:29 عصر
من فقط اطلاعات دیتابیسو میبینم...
خروجی هام همینا هستن.. کد html رو منظورتون رو متوجه نشدم میخواید مثلا عکس بزارید نشون بده؟
یه مشکل خوردم شماره تلفن رو به صورت عدد نمایی نشون میده چیکار کنم؟
نوع داده ای رو چجوری میشه مشخص کرد توی اکسل؟البته توی php بنویسم اونجا اعمال بشه

baran.f.a
دوشنبه 18 خرداد 1394, 14:45 عصر
نوع داده ای شماره تلفن تو دیتابیست چیه؟
منظورم اینه که تو فایل اکسلی که می سازه کد های html رو میاره مثل </body><body> اگر فرمت فایلی که می خوای بسازی رو به xls تغییر بدی خروجی نداری مال من که اینطوره شمارو نمی دونم .

farzad-kh
دوشنبه 18 خرداد 1394, 14:52 عصر
نوع داده ای از نوعtext
نه برای من مشکلی نداره... هم csv و هم xls دقیقا یه خروجی رو بهم میدن...
فقط مشکل دارم تعیین نوع سلول... ک رو بزار

baran.f.a
دوشنبه 18 خرداد 1394, 14:56 عصر
نوع داده ای رو varchar بزارید امتحان کنید . خوب نوع داده ای رو تو دیتابیس تغییر بدید .

baran.f.a
دوشنبه 18 خرداد 1394, 15:00 عصر
شاید این لینک ها کمکتون کنه
http://www.w3schools.com/sql/sql_alter.asp
http://php.net/manual/en/function.settype.php
https://www.developphp.com/page.php?id=203

farzad-kh
دوشنبه 18 خرداد 1394, 15:08 عصر
مشکل نوع داده ای php یا دیتابیس نیس... مشکل نوع داده ای سلول اکسله ... لینکارو چک کردم مرسی منتها برای php بودوsql

baran.f.a
دوشنبه 18 خرداد 1394, 15:13 عصر
اگه منظورتونو فهمیده باشم باید روی اعدادی که به صورت نمایی هستن راست کلیک کنید گزینه format cell رو انتخاب کنید در بخش category ، nimber رو انتخاب کنید و مقدار decimal places رو به صفر تغییر بدید امیدوارم کمک کنه .

farzad-kh
دوشنبه 18 خرداد 1394, 15:24 عصر
دقیقا اینجوریه منتها میخوام اینکارو توی صفحه php اگه بشه انجام بدم.. اونجا format cell رو تعیین کنم