PDA

View Full Version : سوال: اکسپورت رکوردهای برگشتی از MySQL به اکسل



M.YasPro
یک شنبه 19 خرداد 1392, 17:32 عصر
سلام
وقت بخیر
من رکدردهای برگشتی از دیتابیس رو میخوام به اکسل ببرم و بزارم کاربر دانلودش کنه
من با این کد

$filename ="report.xls";
$con=mysqli_connect('localhost','root','','db');
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_query($con,"SET NAMES utf8");

$result = mysqli_query($con,$query);
$i=0;
$contents="کد ملی \t نام \t نام خانوادگی \t نام پدر \t تاریخ تولد \t محل صدور \t\n";
while($row = mysqli_fetch_array($result))
{$i++;
$contents .= $row['mcode']."\t";
$contents .= $row['fname']."\t";
$contents .= $row['lname']."\t";
$contents .= $row['father']."\t";

}mysqli_close($con);



header('Content-type: application/ms-excel;charset: utf-8');
header('Content-Disposition: attachment; filename='.$filename);
print $contents;


میتونم اطلاعات رو به اکسل ببرم امابا فارسی مشکل داره
خواهشا راهنمایی کنید
ممنون از توجهتون

M.YasPro
دوشنبه 20 خرداد 1392, 10:31 صبح
خواهشا مدیران جواب بدن

M.YasPro
سه شنبه 21 خرداد 1392, 08:58 صبح
یعنی انقدر این موضوع سخته؟!!

M.YasPro
جمعه 31 خرداد 1392, 16:57 عصر
خواهشا راهنمایی کنید

MRmoon
جمعه 31 خرداد 1392, 18:18 عصر
بد از ساختن فايل CSV اونرو با notepad بازي كنين وفرمت رو به ANSI ببرين

M.YasPro
شنبه 01 تیر 1392, 08:48 صبح
ممنون از جوابت
اما فایل CSV وقتی تو اکسل ایمپورت میشه کل یه رکورد رو تو یه سلول میاره و این خوب نیست

MRmoon
شنبه 01 تیر 1392, 09:07 صبح
<?php
$filename ="report.xls";
$con=mysqli_connect('localhost','root','','db') or die("Failed to connect to MySQL: " . mysqli_connect_error());
mysqli_query($con,"SET NAMES utf8");

$result = mysqli_query($con,$query);
$contents='"کد ملی", "نام","نام خانوادگی","نام پدر","تاریخ تولد","محل صدور"\n';
while($row = mysqli_fetch_assoc($result))
{
$contents .= '"'.$row['mcode'].'",';
$contents .= '"'.$row['fname'].'",';
$contents .= '"'.$row['lname'].'",';
$contents .= '"'.$row['father'].'",';
$contents = substr($contents,0,-1);
$contents .= "\n";
}
mysqli_close($con);
$f = fopen("myCSV.csv","w");
fwrite($f,$contents);
fclose($f);
header('Content-type: application/ms-excel;charset: utf-8');
header('Content-Disposition: attachment; filename='.$filename);
print $contents;
?>

اينو امتحان كن ::

اين داده ها رو تو فايل myCSV.csv هم اكسپورت ميكنه ....

بعد برا ديدن اطلاعات فارسي فايل myCSV.csv رو با نوتپد باز كن و فرمتش رو ببر رو ANSI

imanitc
شنبه 01 تیر 1392, 13:28 عصر
اين روش هم امتحان کن از همه ساده تره و بهتر من خودم همه جوره ازش کار گرفتم
http://barnamenevis.org/showthread.php?404567-%DA%A9%D9%85%DA%A9-%DA%A9%D9%85%DA%A9-%DA%A9%D9%85%DA%A9-%D9%81%D9%88%D8%B1%DB%8C-%28%D8%B0%D8%AE%DB%8C%D8%B1%D9%87-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA-%D8%AC%D8%AF%D9%88%D9%84-%D8%AF%D8%B1-%D9%81%D8%A7%DB%8C%D9%84-%D8%A7%DA%A9%D8%B3%D9%84%29

M.YasPro
سه شنبه 04 تیر 1392, 09:14 صبح
ممنون از جوابت
من از این کد استفاده کردم

$query = "SELECT * FROM reg";
$filename ="modiriat".date("Y-m-d|H:i:s").".xlsx";


$rows = mysqli_query($con,'SELECT * from reg');
$contents ="";
// loop over the rows, outputting them
while ($row = mysqli_fetch_array($rows))
{
$contents.=" تست \t";
}
echo $contents;
@header('Content-Type: application/octetstream; name=vnd.ms-excel');
@header('Content-Disposition: attachment; filename='.$filename);
echo '<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />';
echo $contents;
اما این ارور رو تو اکسل میده
106138