View Single Post
ישן 03-02-07, 09:55   # 2
WebProject
מ.תיכנות
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: אשדוד
הודעות: 3,070
Send a message via Skype™ to WebProject

WebProject לא מחובר  

הדבר בהחלט אפשרי, כתבתי ממזמן קוד, בכל מקרה, מה שעליך לעשות הוא לשלוף את כל הנתונים מן הטבלה שאתה מעוניין להכניס לקובץ אקסל, ובמקביל לשלוף גם את שמות השדות.

הקוד:

PHP קוד:
$result mysql_query('select * from `YourTable`');
$count mysql_num_fields($result);

for (
$i 0$i $count$i++){
    
$header .= mysql_field_name($result$i)."\t";
}

while(
$row mysql_fetch_row($result)){
  
$line '';
  foreach(
$row as $value){
    if(!isset(
$value) || $value == ""){
      
$value "\t";
    }else{

      
$value str_replace('"''""'$value);

      
$value '"' $value '"' "\t";
    }
    
$line .= $value;
  }
  
$data .= trim($line)."\n";
}

  
$data str_replace("\r"""$data);


if (
$data == "") {
  
$data "\n לא נמצאו נתונים בטבלה \n";
}

header("Content-type: application/octet-stream");

header("Content-Disposition: attachment; filename=YouFileName.xls");
header("Pragma: no-cache");
header("Expires: 0");

echo 
$header."\n".$data
בשורה הראשונה, אתה שולף את כל הנתונים מן טבלה שאתה תבחר, במקרה הזה YouTable,
בשורה השנייה ספרנו את מספר השדות (לא מספר הנתונים!), על מנת שלאחר מכן נוכל לגשת אל כל אחד ואחד מהם בלולאה, ובעצם לקחת את שמם, על מנת שלאחר מכן נוכל להכניסם לקובץ הEXEL.

הלולאה שאתה עכשיו רואה בעצם משתמשמת במספר השדות שנלקחו בשורות הקודמות, ואז נגשת אל כל אחד ואחד מן השדות הללו, ולוקחת את שמו, ומכניסה אותו אל ה Header.

בלולאה הבאה (While), נלקחים כל הנתונים מן הטבלה, וכל מיני תווים לא הכרחיים מוחלפים, כמו ירידת שורה וכו', לאחר מכן מתבצעת בדיקה האם ישנם נתונים בטבלה, אם לא בקובץ הEXEL תגלה שגיאה קטנה שתוכל לשנות אותה כרצונך.

מספר השורות האחרונות (Headers) קובעות את סוג הקובץ, שמו וכו', גם פה תוכל לבצע שינויים, כמו שם הקובץ :]


מקווה שעזר ^^
__________________
כושר קרבי \ טיפים לגיבושים



פורטל רעל - צבא וכושר קרבי
  Reply With Quote