הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   [PHP] ייצוא נתונים משאילתה לקובץ אקסל? (https://hosts.co.il/forums/showthread.php?t=39136)

sUP 03-02-07 01:48

[PHP] ייצוא נתונים משאילתה לקובץ אקסל?
 
אפשרי הדבר?


ועוד משהו, הוספת קבצים לשליחה ב mail()

WebProject 03-02-07 09:55

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

הקוד:

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) קובעות את סוג הקובץ, שמו וכו', גם פה תוכל לבצע שינויים, כמו שם הקובץ :]


מקווה שעזר ^^

hpman28 03-02-07 10:51

יש לך גם חבילה של PEAR
 
בחבילה הזאת אפשר לקבוע עיצובים לתאים, צבעים, גודל פונט ודברים כאלה.

שיטת CSV היא נוחה, אבל לא מאפשרת הרבה דברים.

sUP 03-02-07 14:48

תודה רבה טל :)

בנוגע לשאלה השניה שלי - איך אני יכול לצרף קבצים למייל שאני שולח


כל הזמנים הם GMT +2. הזמן כעת הוא 03:03.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ