PDA

View Full Version : سوال: کمک کمک کمک فوری (ذخیره اطلاعات جدول در فایل اکسل)



m.malekee
جمعه 31 خرداد 1392, 15:49 عصر
سلام دوستان
من اطلاعات جدول رو در یک فایل اکسل ذخیره کردم اما مشکلی که داره اینه که هر رکورد از جدول رو تو یک سلول ذخیره میکنه من میخوام هر فیلد جدول در یک سلول از اکسل قرار بگیره خواهش مشکنم کمکم کنید
کدی که به کار بردم اینه

<?php
function export_excel_csv($_DB_TBLName)
{
include_once("server.inc");
global $connectionion;
mysql_query("SET NAMES 'utf8'");
$sql = "select * from {$_DB_TBLName}";

//Optional: print out title to top of Excel or Word file with Timestamp
//for when file was generated:
//set $Use_Titel = 1 to generate title, 0 not to use title
$Use_Title = 1;
//define date for title: EDIT this to create the time-format you need
$now_date = DATE('m-d-Y H:i');
//define title for .doc or .xls file: EDIT this if you want
$title = "Dump For Table $_DB_TBLName from Database $_DB_TBLName on $now_date";

$connectionion= @MYSQL_CONNECT($servername,$username,$password)or die('Connection error');
@mysql_select_db("bargh")or die('Database error');
mysql_set_charset('utf8');

//execute query
$result = MYSQL_QUERY($sql,$connectionion)
//$result = mysql_query("SELECT * FROM '$_DB_TBLName'");
or DIE("Couldn't execute query:<br>" . MYSQL_ERROR(). "<br>" . MYSQL_ERRNO());

//if this parameter is included ($w=1), file returned will be in word format ('.doc')
//if parameter is not included, file returned will be in excel format ('.xls')
IF (ISSET($w) && ($w==1))
{
$file_type = "msword";
$file_ending = "doc";
}ELSE {
$file_type = "vnd.ms-excel";
$file_ending = "xls";
}
//header info for browser: determines file type ('.doc' or '.xls')
HEADER("Content-Type: application/$file_type; charset='UTF8';");
HEADER("Content-Disposition: attachment; filename=$_DB_TBLName.$file_ending");
HEADER("Content-Transfer-Encoding: binery");
HEADER("Pragma: no-cache");
HEADER("Expires: 0");

/* Start of Formatting for Word or Excel */

IF (ISSET($w) && ($w==1)) //check for $w again
{
/* FORMATTING FOR WORD DOCUMENTS ('.doc') */
//create title with timestamp:
IF ($Use_Title == 1)
{
ECHO("$title\n\n");
}
//define separator (defines columns in excel & tabs in word)
$sep = "\n"; //new line character

WHILE($row = MYSQL_FETCH_ROW($result))
{
//set_time_limit(60); // HaRa
$schema_insert = "";
FOR($j=0; $j<mysql_num_fields($result);$j++)
{
//define field names
$field_name = MYSQL_FIELD_NAME($result,$j);
//will show name of fields
$schema_insert .= "$field_name:\t";
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 .= "\t";
PRINT(TRIM($schema_insert));
//end of each mysql row
//creates line to separate data from each MySQL table row
PRINT "\n----------------------------------------------------\n";
}
}ELSE{
/* FORMATTING FOR EXCEL DOCUMENTS ('.xls') */
//create title with timestamp:
IF ($Use_Title == 1)
{
ECHO("$title\n");
}
//define separator (defines columns in excel & tabs in word)
$sep = "\t"; //tabbed character

//start of printing column names as names of MySQL fields
for ($i = 0; $i < mysql_num_fields($result); $i++)
{
ECHO MYSQL_FIELD_NAME($result,$i) . "\t";
}
PRINT("\n");
//end of printing column names

//start while loop to get data
while($row = MYSQL_FETCH_ROW($result))
{
//set_time_limit(60); // HaRa
$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);
//following fix suggested by Josue (thanks, Josue!)
//this corrects output in excel when table fields contain \n or \r
//these two characters are now replaced with a space
$schema_insert = PREG_REPLACE("/\r\n|\n\r|\n|\r/", " ", $schema_insert);
$schema_insert .= "\t";
PRINT(TRIM($schema_insert));
PRINT "\n";
}
}
}
@import_request_variables("p","_");
if(isset($_xls,$_DB_TBLName)){
export_excel_csv($_DB_TBLName);
}
?>

imanitc
شنبه 01 تیر 1392, 08:37 صبح
سلام
من براي گرفتن خروجي اکسل يه صفحه php درست کردم که اطلاعات جدول مورد نظرم رو بصورت html و با هرنوع css دلخواه بصورت style و سپس کليه اين html ها رو پاس ميدم به صفحه php مثلا اسمش رو ميذاريم export.php توي اونجا اين کد ها دارم :


<?php
$filename ="modiriat".date("Y-m-d|H:i:s").".".$_POST[type];
$contents = $_POST['contents'];
@header('Content-Type: application/octetstream; name='.$filename);
@header('Content-Disposition: attachment; filename='.$filename);
echo '<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />';
echo $contents;
?>

توضيح بيشتر اينکه $filetype اسم خروجي است شما ميتونيد هر پسوند ي که خاستي رو اينجا بدي مثلا test.xlss,*.docx,...html,.txt ,...