העברת נתוני MSQL ל- EXCEL

ldannnn

New member
העברת נתוני MSQL ל- EXCEL../images/Emo168.gif

חיפשתי רבות וגם מצאתי אך כלום לא עבד. האם יש קוד PHP המעביר נתונים טבלת נתנוים היושבת בבסיס נתוני MYSQL ל- EXCEL . הורדתי אפליקציה מסויימת. הזנתי אליה את שם בסיס הנתונים, המשתמש , הססמא, שם הטבלה והקובץ אליו אמור החומר להישפך ולא עבד!! . האפליקציה תשב על שרת LINUX. תודה
 

bnayal

New member
תבנה אחת בעצמך

אני לא יודע כמה הPHP עובד עם EXCEL אבל שווה לנסות... חיפשת בגוגל?
 

Jonatan 44

New member
תלוי

אם הייתה אומר שאתה עובד על שרת WIndows הייתי אומר לך בוודאות שאתה יכול לעשות את זה, בעזרת ODBC שמקשר אל Excel. אם אתה עובד על Unix אז אתה צריך דבר שניקרא unixODBC או iODBC, אני לא יודע אם הם מותקנים אצלך ואם הם תומכים בEXCLE. קרא על odbc ב php.net
 

ldannnn

New member
העברת נתונים../images/Emo122.gif

חברים יקרים, אין ספק שקוד PHP פשוט אמור לקרוא נתוני טבלה מבסיס נתונים ולשפוך אותם לקובץ EXCEL ASC או WHATEVER הבעיה שעדיין לא מצאתי אותו. למרות שזה חייב להיות טריוויאלי.!!!! תודה לעונים. ואשמח לקבל הפניה לקוד PHP שיעשה את העבודה.
 

Jonatan 44

New member
זה אמור להיות טריוואלי

במיקרה ויש לך את הכלים הדרושים, לצערנו הרב, PHP לא תומכת בפונקציה שניקראת "קסם" שפשוט מעביר את הנתונים, כי דמבלדור עוד לא יודע ליכתוב קודים ב C. ככה שאם תוכל להגיד לי בכן/לא האם השרת שלך תומך באיזה שהיא מערכת ODBC אני אוכל להגיד לך תשובה ברורה יותר.
 

bzini

New member
אין פשוט מזה

תבנה סקריפט קטן שקורא מתוך ה DB את הנתונים ורושם אותם בפורמט של טבלת HTML למשתנה. לאחר שסיימת לקרוא את הנתונים, כתוב את תוכן המשתנה לקובץ עם הסיומת XLS. כתוב לינק לקובץ אותו יצרת והמשתמש ילחץ על הלינק ויקבל קובץ EXCEL כשר למהדרין. הנה דוגמא כללית (זה לא קוד שעובד רק רעיון):
<? //Start Table// $output = "<table>"; $output .= "<tr>"; $output .= "<td><b>Title 1</b></td>"; $output .= "<td><b>Title 2</b></td>"; $output .= "<td><b>Title 3</b></td>"; $output .= "</tr>"; //Read Data// $db_data = READ_DATA_FROM_DB; while ($db_data) { $output .= "<tr>"; $output .= "<td>" . $db_data[0] . "</td>"; $output .= "<td>" . $db_data[1] . "</td>"; $output .= "<td>" . $db_data[2] . "</td>"; $output .= "</tr>"; } //End Table// $output .= "</table>"; //Write File// $file_name = "File.xls"; $fp = fopen ("PATH_TO_FILE/" . $file_name, "w"); fwrite ($fp, $output); fclose($fp); //Create Link// echo "<a href=" . $file_name . ">Click Here for Excel File</a>"; ?>​
בהצלחה.
 

Jonatan 44

New member
אם אני לא טועה

מסמכי XSL נישמרים כקובץ בינארי, ולא TEXT/PALIN, לכן אם הוא יעבוד לפי השיטה שלך, לא יצא לו כלום. השיטה שלך מאוד נחמדה, אבל היא לא פועלת
 

bzini

New member
תבדוק אותי....

יונתן - אחרי כמעט 10 שנים שאני עובד עם השיטה הזאת, בכל גירסאות האקסל ובכל מערכת הפעלה וסביבת עבודה שאתה יכול להעלות על הדעת אני די בטוח שהשיטה הזאת עובדת. הדבר הנכון היחיד שאמרת (וגם זה לא ממש מדויק) שאקסל לא נשמר כקובץ טקסט. זה נכון כל עוד אתה מיצר את הקובץ באקסל, השיטה שלי בתבססת על היכולת (המופלאה והעתיקה) של אקסל לקרוא טבלאות HTML כטבלאות אקסל לכל דבר (כולל עיצוב וכו').
כמו שאמרתי , פעם הבאה תבדוק לפני שאתה מגיב.
 

yodan

New member
אבל אז זה לא אקסל "אמיתי"

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

i s o T o p

New member
זה לא משנה אם זה עובד

עם האקסל אז פתרת להוא את הבעיה לא כל דבר צריך HITECH לפעמים ראש קטן ןLOWTECH עדיף.
 

i s o T o p

New member
אופן אופיס קורא טבלות HTML מצויין

אז אין דאגה מבחינת תאימות, זה עוד יותר טוב זה יראה אותו הדבר בכל הפלטפורמות, אנא אפילו יתרון יש לזה.
 

yodan

New member
אין לי בעיה עם טבלאות HTML

יש לי בעיה עם זה שהוא יוצר טבלת HTML ושומר אותה בסיומת של אקסל.
 

i s o T o p

New member
אבל זה פותר לו את הבעיה

לפעמים אנשים רוצים לשמור את הנתונים כך שיוכלו להשתמש בהם מאוחר יותר, ורוב האנשים לא יודעים איך להשתמש בקבצי HTML.
 

Jonatan 44

New member
כמו שאמרו פה, זה לא אקסל אמיתי.

זה לא אקסל, זה רק דרך מופלאה שכמו שאמרתה שאקסל יכול ליקרוא טבלאות HTML, זה עדיין לא הופך את הקובץ הזה לקובץ אקסל.
 

bzini

New member
הרגתם אותי....

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

Jonatan 44

New member
זה למה

נניח ויש לי נתונים בקובץ אקסל שייצרתי על ידי השיטה שלך, ועכשיו, אני מעוניין להמיר את זה ל access. אני יכול לעשות באקסס import לקובץ xls, במידה והוא היה קובץ xls "אמיתי", הייתי יכול לייבוא את הנתונים, אבל הוא לא, לכן תיווצר שגיאה. כמובן שאפשר ליצור קובץ אקסל "אמיתי" בעזרת שמירה בשם, אבל זה לא רלוונטי במיקרה ואני רוצה לעשות את זה בצד שרת. לכן תמיד עדיף לעבוד בשיטה אשר יועדה (פחות או יותר) לעבוד אם קבצים כאלה, System DNS ולא לעשות "קיצורי דרך" בעזרת HTML ולהיסתמך על התוכנה אשר קוראת את זה. לסיכום, זה טוב יפה שזה עובד, במיקרים מסויימים זה אפילו יעבוד, אבל אם תעבוד בשיטה הנכונה -- זה יעבוד בכול המיקרים
 

bzini

New member
תגובה אחרונה בהחלט

יונתן, אני עדיין לא ממש קונה את צורת המחשבה שלך, אבל זכותך. ל - 99% אחוז מהמקרים אין צורך באקסל "אמיתי", אבל אם אתה מתעקש אתה מוזמן לבדוק את שני הקישורים למטה. לי לא יצא להשתמש בהם אבל אולי זה יתן לך משהו "ארוך" להתעסק איתו.
 

ruthnis

New member
האם ניסית קובץ CSV

שלום: קובץ CSV הוא קובץ ASCII שבו השדות מופרדות בפסיקים (COMMA SEPARATED VARIABLES). אתה צריך לוודא שבשדות שלך אין פסיקים ואז פשוט כותבים קובץ ASCII אשר מסתיים ב- CSV שבו כל שורה זה רשומה ובתוך כל שורה אתר מפריד את השדות עם פסיקים. קובץ כזה נפתח אוטומטית באקסל.
 

i s o T o p

New member
לאחר התגובות פה

יש צורך בחשיבה מחדש, מה המטרה בלהפוך את המידע למידע של אקסל?
 
למעלה