emi_ Δημοσ. 4 Ιουλίου 2008 Δημοσ. 4 Ιουλίου 2008 Γεια σας παιδια, γράφω κώδικα σε php και φτιαχνω μια μικρή web εφαρμογή. Αυτό που προσπαθώ τώρα να κάνω είναι να μεταφέρω δεδομένα από τον MySQL στο Excel με χρήση της php. Έχω βρεί κάποιες έτοιμες κλάσεις στο διαδίκτιο αλλάενώενσωματώνονταιόπως θέλω στον κώδικα και τρέχουν στο τέλος πέρνω ένα spreadsheet που έχει όλατα δεδομένα γραμμένα στο πρώτο κελί αντί να βρίσκονται στη σωστή θέση. Δηλαδή πέρνω: ID Name "3" "Maria" "2" "Anna" "1" "Antreas" Αντί για δύο στήλες ID και Name με τις αντίστοιχες τιμές. Σας παρακαλώ βοηθήστε αν μπορείτε, εχω δοκιμάσει τα πάντα και δεν βρίσκω την άκρη ....
Επισκέπτης Δημοσ. 4 Ιουλίου 2008 Δημοσ. 4 Ιουλίου 2008 γράψε την mysql query που χρησιμοποιείς και πως χειριζεσε το resultset μετά... και βασικά δε χρειαζεσε ετοιμες συναρτησεις μιας και αν πάρεις τα αποτελέσματα της ερώτησης και τα γράψεις σε ένα CSV αρχείο(δηλαδή,τα πεδία κάθε πλειάδας χωρισμένα με κόμμα), είσαι κομπλέ...
emi_ Δημοσ. 4 Ιουλίου 2008 Μέλος Δημοσ. 4 Ιουλίου 2008 Εδω είναι ο κώδικας που χρησιμοποιώ > <?php //i sindesi me ti vasi einai ok include('pcuser.php'); //to erotima... $result = mysql_query('select * from testing'); $count = mysql_num_fields($result); //pernei taonomata ton stilon $header=""; for ($i = 0; $i < $count; $i++){ $header .= mysql_field_name($result, $i)."\t"; } //pernei ta dedomena kathe stilis $data=""; while($row = mysql_fetch_row($result)){ $line = ''; foreach($row as $value){ if(!isset($value) || $value == ""){ $value = "\t"; }else{ # important to escape any quotes to preserve them in the data. $value = str_replace('"', '""', $value); # needed to encapsulate data in quotes because some data might be multi line. # the good news is that numbers remain numbers in Excel even though quoted. $value = '"' . $value . '"' . "\t"; } $line .= $value; } $data .= trim($line)."\n"; } # this line is needed because returns embedded in the data have "\r" # and this looks like a "box character" in Excel $data = str_replace("\r", "", $data); # Nice to let someone know that the search came up empty. # Otherwise only the column name headers will be output to Excel. if ($data == "") { $data = "\nno matching records found\n"; } # This line will stream the file to the user rather than spray it across the screen header("Content-type: application/octet-stream"); # replace excelfile.xls with whatever you want the filename to default to header("Content-Disposition: attachment; filename=excelfile.xls"); header("Pragma: no-cache"); header("Expires: 0"); echo $header."\n".$data; ?> Δηλαδή τα δεδομένα τα πέρνει σωστάαπό τον MySQL αλλά δεν μου τα εμφανίζει στη μορφή που πρέπει στο excel Ευχαριστώ για την απάντηση
alexandr0s Δημοσ. 4 Ιουλίου 2008 Δημοσ. 4 Ιουλίου 2008 $data .= trim($line)."\n";} # this line is needed because returns embedded in the data have "\r" # and this looks like a "box character" in Excel $data = str_replace("\r", "", $data); κάνε τα $data .= trim($line)."\r\n";} # this line is needed because returns embedded in the data have "\r" # and this looks like a "box character" in Excel //$data = str_replace("\r", "", $data);
emi_ Δημοσ. 4 Ιουλίου 2008 Μέλος Δημοσ. 4 Ιουλίου 2008 Γεια σου φίλε μου. Χρησιμοποίησα την διόρθωση που μου εδωσες πιο πάνω και πήρα το ίδιο αποτέλεσμα. Μετά είπα να πειραματιστώ λίγο και έκανα uncomment τη δεύτερη γραμμή οπότε έτρεξε. Δηλαδή: > $data .= trim($line)."\r\n"; } # this line is needed because returns embedded in the data have "\r" # and this looks like a "box character" in Excel $data = str_replace("\r", "", $data); Ευχαριστώ πολύ για τη βοήθεια δεν θα το έβρισκα αλλοιώς!!! natural_sgf μήπως σου βρίσκεται κανένα tutorial για το πως μπορώ να δημιουργήσω CVS αρχεία όπως μου πρότεινες πιο πάνω?
emi_ Δημοσ. 5 Ιουλίου 2008 Μέλος Δημοσ. 5 Ιουλίου 2008 Γεια σας στέλνω πάλι επειδή βλέπω πως το πρόβλημα που αναφέρω πο πάνω επαναλαμβάνεται. Ενώ με τις πιο πάνω διορθώσεις το script ετραχε κανονικά και έβλεπα το spreadsheet μια χαρά τώρα που προσπαθώ να κάνω include τον κώδικα μέσα από μία σελίδα php η οποία έχει head, body κ.τ.λ βλέπω πως πέρνω πάλι ένα spreadsheet το οποίο έχει μέν τα δεδομένα αλλά δεν τα χωρίζει σε στήλε και γραμμες. Μηπως ξέρετε τι μπορεί να συμβαίνει? Έχω απελπιστεί!
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.