PDA

View Full Version : سوال: خروجی Excel از mysql توسط php



mohammadrezaf
جمعه 06 تیر 1393, 14:56 عصر
با سلام خدمت اساتید محترم.
بنده کدی رو میخواستم که از مای اس کیو ال خروجی بگیره و به فایل اکسل استاندارد تبدیل کنه
توی نت و انجمن خیلی گشتم همه کد ها ناقص بود . (مثلا یه کد بود خروجی رو میگرفت ولی فیلد فیلد جدا نمیکرد و...)
به هرحال یه پاسخ جامع بدید که سوال خیلیا برطرف شه...چون تقریبا تو همه انجمن های برنامه نویسی پرسیده شده بود و کسی جواب جامع نداده بود... تشکر.

mohammadrezaf
جمعه 06 تیر 1393, 15:19 عصر
تشکر یادتون نره.

بعد از جستجوی بسیار فراوان و تغییراتی که توی کد ها انجام دادم مشکل رو حل کردم...

بفرمایید:




<?php
$db_name = "man";
$link = mysql_connect("localhost", "root", "") or die("Could not connect to server!");

$table_name = 'man';

$select_db = mysql_select_db($db_name, $link);
mysql_query("SET NAMES 'utf8'");
$query = "SELECT * FROM " . $table_name;
$result = mysql_query($query, $link) or die("Could not complete database query");
$num = mysql_num_rows($result);
$num2=mysql_num_fields($result);
$query="SHOW COLUMNS FROM ".$table_name;
$result1=mysql_query($query);

$header="";
for ($i = 0; $i <= $num2; $i++) {
$header .= mysql_field_name($result, $i) . "\t";
}
if ($num != 0) {
$_xml ="<?xml version='1.0' encoding='UTF-8' standalone='yes'?>\r\n";

$_xml.="<dataroot xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>\r\n";

while ($row = mysql_fetch_array($result)) {
// while ($row=mysql_fetch_array($result)){
$_xml .="\t<Table1>\r\n";
mysql_data_seek($result1,0);
$i=0;
while($f=mysql_fetch_array($result1)){
$_xml.="\t\t<".$f[0].">".$row[$i]."</".$f[0].">\r\n";
$i++;
}
$_xml.="\t</Table1>\r";
// }
}
$_xml.="</dataroot>";
header("Content-Type: application/vnd.ms-excel; charset=utf-8");
header("Content-Disposition: attachment; filename=filename.xls");
header("Pragma: no-cache");
header("Expires: 0");
header("Lacation: excel.htm?id=yes");
print "$_xml";
} else {
echo "No Records found";
}

?>

us1234
جمعه 06 تیر 1393, 19:29 عصر
این روش با زبان فارسی مشکل پیدا میکند
یا مثلا وقتی خروجی گرفتید موقع باز کردن در نرم افزار اکسل ارور میدهد
بهتر است از این کتابخانه استفاده کنید :
Spreadsheet_Excel_Writer

در این روش می توانید رنگ فیلد ها ، رنگ بکگراند ها ، فونت ها را تغییر دهید و یا حتی فرمول نویسی کنید