Chào, Khách!
  1. hongoctrien
    Offline
    hongoctrien   [2.449/2.464]
    Nội dung file index.php

    Mã:
    <?php
    // load library
    require 'php-excel.class.php';
     
    // create a simple 2-dimensional array
    $data = array(
    array ('Name', 'Surname'),
    array ('Hồ', 'Ngọc Triển'),
    array ('Lê', 'Chánh Còi'),
            );
     
    // generate file (constructor parameters are optional)
    $xls = new Excel_XML('UTF-8', false, 'Workflow Management');
    $xls->addArray($data);
    $xls->generateXML('Output_Report_WFM');
     
    ?>

    Nội dung file php-excel.class.php:

    Mã:
    <?php
     
    /**
    * Simple excel generating from PHP5
    *
    * @package Utilities
    * @license http://www.opensource.org/licenses/mit-license.php
    * @author Oliver Schwarz <oliver.schwarz@gmail.com>
    * [USER=1768]version[/USER] 1.0
    */
     
    /**
    * Generating excel documents on-the-fly from PHP5
    *
    * Uses the excel XML-specification to generate a native
    * XML document, readable/processable by excel.
    *
    * @package Utilities
    * @subpackage Excel
    * @author Oliver Schwarz <oliver.schwarz@vaicon.de>
    * [USER=1768]version[/USER] 1.1
    *
    * @todo Issue #4: Internet Explorer 7 does not work well with the given header
    * @todo Add option to give out first line as header (bold text)
    * @todo Add option to give out last line as footer (bold text)
    * @todo Add option to write to file
    */
    class Excel_XML
    {
     
        /**
        * Header (of document)
        * @var string
        */
            private $header = "<?xml version=\"1.0\" encoding=\"%s\"?\>\n<Workbook xmlns=\"urn:schemas-microsoft-com:office:spreadsheet\" xmlns:x=\"urn:schemas-microsoft-com:office:excel\" xmlns:ss=\"urn:schemas-microsoft-com:office:spreadsheet\" xmlns:html=\"http://www.w3.org/TR/REC-html40\">";
     
            /**
            * Footer (of document)
            * @var string
            */
            private $footer = "</Workbook>";
     
            /**
            * Lines to output in the excel document
            * @var array
            */
            private $lines = array();
     
            /**
            * Used encoding
            * @var string
            */
            private $sEncoding;
           
            /**
            * Convert variable types
            * @var boolean
            */
            private $bConvertTypes;
           
            /**
            * Worksheet title
            * @var string
            */
            private $sWorksheetTitle;
     
            /**
            * Constructor
            *
            * The constructor allows the setting of some additional
            * parameters so that the library may be configured to
            * one's needs.
            *
            * On converting types:
            * When set to true, the library tries to identify the type of
            * the variable value and set the field specification for Excel
            * accordingly. Be careful with article numbers or postcodes
            * starting with a '0' (zero)!
            *
            * @param string $sEncoding Encoding to be used (defaults to UTF-8)
            * @param boolean $bConvertTypes Convert variables to field specification
            * @param string $sWorksheetTitle Title for the worksheet
            */
            public function __construct($sEncoding = 'UTF-8', $bConvertTypes = false, $sWorksheetTitle = 'Table1')
            {
                    $this->bConvertTypes = $bConvertTypes;
                $this->setEncoding($sEncoding);
                $this->setWorksheetTitle($sWorksheetTitle);
            }
           
            /**
            * Set encoding
            * @param string Encoding type to set
            */
            public function setEncoding($sEncoding)
            {
                $this->sEncoding = $sEncoding;
            }
     
            /**
            * Set worksheet title
            *
            * Strips out not allowed characters and trims the
            * title to a maximum length of 31.
            *
            * @param string $title Title for worksheet
            */
            public function setWorksheetTitle ($title)
            {
                    $title = preg_replace ("/[\\\|:|\/|\?|\*|\[|\]]/", "", $title);
                    $title = substr ($title, 0, 31);
                    $this->sWorksheetTitle = $title;
            }
     
            /**
            * Add row
            *
            * Adds a single row to the document. If set to true, self::bConvertTypes
            * checks the type of variable and returns the specific field settings
            * for the cell.
            *
            * @param array $array One-dimensional array with row content
            */
            private function addRow ($array)
            {
                $cells = "";
                    foreach ($array as $k => $v):
                            $type = 'String';
                            if ($this->bConvertTypes === true && is_numeric($v)):
                                    $type = 'Number';
                            endif;
                            $v = htmlentities($v, ENT_COMPAT, $this->sEncoding);
                            $cells .= "<Cell><Data ss:Type=\"$type\">" . $v . "</Data></Cell>\n";
                    endforeach;
                    $this->lines[] = "<Row>\n" . $cells . "</Row>\n";
            }
     
            /**
            * Add an array to the document
            * @param array 2-dimensional array
            */
            public function addArray ($array)
            {
                    foreach ($array as $k => $v)
                            $this->addRow ($v);
            }
     
     
            /**
            * Generate the excel file
            * @param string $filename Name of excel file to generate (...xls)
            */
            public function generateXML ($filename = 'excel-export')
            {
                    // correct/validate filename
                    $filename = preg_replace('/[^aA-zZ0-9\_\-]/', '', $filename);
           
                    // deliver header (as recommended in php manual)
                    header("Content-Type: application/vnd.ms-excel; charset=" . $this->sEncoding);
                    header("Content-Disposition: inline; filename=\"" . $filename . ".xls\"");
     
                    // print out document to the browser
                    // need to use stripslashes for the damn ">"
                    echo stripslashes (sprintf($this->header, $this->sEncoding));
                    echo "\n<Worksheet ss:Name=\"" . $this->sWorksheetTitle . "\">\n<Table>\n";
                    foreach ($this->lines as $line)
                            echo $line;
     
                    echo "</Table>\n</Worksheet>\n";
                    echo $this->footer;
            }
     
    }
     
    ?>
    Đã test, không bị lỗi font chữ.

    Nguồn: Sưu tầm
  2. bin_kute
    Offline
    bin_kute   [14/4]
    code đó xuất ra từ mảng, bạn có thể giúp mình xuất ra từ mysql mà không lỗi font tiếng việt được chứ? cảm ơn bạn
  3. hongoctrien
    Offline
    hongoctrien   [2.449/2.464]
    Code trên chỉ xuất file excel ra từ mảng gán sẵn. Code dưới đây xuất ra file excel từ MySql

    Cùng thực hành luôn nhé.
    Trước hết vào phpmyadmin tạo 1 CSDL (inet_shop) gồm 1 bảng (shop_topic) có 2 trường (id, nametp). Tiến hành nhập dữ liệu.
    Đang làm đồ án sẳn up csdl mới tạo lên luôn, down file đính kèm và import vào phpmyadmin nhé.

    1. Xong phần CSDL test
    2.
    - Nội dung file php-excel.class.php giữ nguyên
    - Thay toàn bộ code trong file index.php bằng code dưới đây, trong đó mình đã chú thích rõ rồi, ở đâu không hiểu cứ gửi bài bên dưới nhé!.
    PHP:
    <?
    // load library
    require 'php-excel.class.php';
     
    //Ket noi CSDL
    $connect mysql_connect('localhost''root''');
    if(!
    $connect)
    {
        echo 
    "Kết nối dữ liệu không thành công!";
    }
    $db_selected mysql_select_db('inet_shop'$connect);
     
    //lay du lieu tu bang "shop_topic"
    $sql "SELECT * FROM shop_topic";
    $result mysql_query($sql);
     
    //Khai bao bien mang, gan tieu de
    $data = array(array('ID''Tên chủ đề')); //Them tiep neu muon lay nhieu cot hon nua
     
        
    while ( $row mysql_fetch_array$result ) )
        {
            
    //lay gia tri tu csdl gan cho mang
            
    $data[] = array ($row['id'], $row['nametp']); //Them tiep neu muon lay nhieu cot hon nua
        
    }
     
    // generate file (constructor parameters are optional)
    $xls = new Excel_XML('UTF-8'false'Sheet 1');
    $xls->addArray($data);
    $xls->generateXML(' Test_export_2mit');
     
    ?>

    Các file đính kèm:

    white.smut thích bài này.
  4. ubuntu1
    Offline
    ubuntu1   [3/0]
    cài sampp rồi mà sao k khởi động mysql để kết nối với php đc? chỉ mình cách khởi động mysql đi, hoặc có phần mềm myslq nào cũng đc.thank
  5. hongoctrien
    Offline
    hongoctrien   [2.449/2.464]
    Bạn khởi động xamp-control và "Star" hai dịch vụ là Apache và Mysql
    Làm việc với mysql thông qua đường dẫn http://localhost/phpmyadmin
  6. Phan thủy
    Offline
    Phan thủy   [3/0]
    thanks bác. Em đang cần cái này
    --- Nhập chung bài viết, 15 Tháng mười hai 2012 ---
    thanks bác. Em đang cần cái này
  7. huanpro
    Offline
    huanpro   [1/0]
    sao minh lam nhu vay ma thay bao loi vay
    --- Nhập chung bài viết, 29 Tháng mười hai 2012 ---
    sao minh lam nhu vay ma thay bao loi vay
    --- Nhập chung bài viết, 29 Tháng mười hai 2012 ---
    sao ban ko lam mot video cho bon minh xem voi
    --- Nhập chung bài viết, 29 Tháng mười hai 2012 ---
    sao ban ko lam mot video cho bon minh xem voi
  8. hongoctrien
    Offline
    hongoctrien   [2.449/2.464]
    Lỗi gì bạn cứ gửi lên để mình xem thử
  9. lydongha
    Offline
    lydongha   [2/0]
    Bạn ơi cho m hỏi.M muốn xuất ra excel thêm biểu tượng logo.nếu như m muốn tô màu nữa thì làm kiểu gì nhỉ?
  10. hongoctrien
    Offline
    hongoctrien   [2.449/2.464]
    Cái đó mình chưa nghĩ tới :D
  11. lydongha
    Offline
    lydongha   [2/0]
    Bạn ơi cho m hỏi.M muốn xuất ra excel thêm biểu tượng logo.nếu như m muốn tô màu nữa thì làm kiểu gì nhỉ?
  12. linhnhi12
    Offline
    linhnhi12   [1/0]
    Cho mình hỏi mình làm xong rồi nhưng khi chạy file exl thì nó báo lỗi này : problems came up in the following areas during load. Ai biết do đâu không chỉ mình với. Lần đầu mình chạy thì nó ra file a.html thì chạy ngon. Nhưng lần sau thì nó cho save thành file exl và lỗi.
    Thanks!
  13. omall_marketing
    Offline
    omall_marketing   [2/0]
    Đang tìm, tình cờ gặp ở đây.
  14. hongoctrien
    Offline
    hongoctrien   [2.449/2.464]
    Bạn có thể up code mình kiểm tra được chứ?
  15. tranthanh86
    Offline
    tranthanh86   [2/0]
    Mình làm theo hướng dẫn của bạn nhưng khi chạy file index.php màn hình chỉ xuất hiện dòng "addArray($data); $xls->generateXML(' Test_export_2mit'); ?>" ( mình mới học code). Giúp mình nhé.
  16. hongoctrien
    Offline
    hongoctrien   [2.449/2.464]
    Bạn gửi file code của bạn lên nhé
  17. tranthanh86
    Offline
    tranthanh86   [2/0]
    Gửi bạn code, bạn xem giúp mình nhé: mediafire.com/download/l5w6c4bjo1jrzbb/downexcel.zip

    Cảm ơn bạn!
  18. hongoctrien
    Offline
    hongoctrien   [2.449/2.464]
    oh, bạn xem lại chứ mình test vẫn thấy ổn mà bạn
  19. hpleduit
    Offline
    hpleduit   [1/0]
    Chào bạn
    bạn xem giúp mình vơi mình export ra file excel thì thành công nhưng nó bị lỗi font, và dữ liệu không đầy đủ. Bạn có thể test giúp mình với được không đây là code, database, file xuất ra nữa mediafire.com/download/4fj5cly3atrnb87/diemhs.zip
    Mail của mình: hpl.eduit@gmail.com