1. Tuyển Mod quản lý diễn đàn. Các thành viên xem chi tiết tại đây

Xin vui lòng giúp tôi - Excel

Chủ đề trong 'Hỏi đáp Tin học' bởi chieu_tim, 06/04/2004.

  1. 0 người đang xem box này (Thành viên: 0, Khách: 0)
  1. chieu_tim

    chieu_tim Thành viên mới

    Tham gia ngày:
    10/10/2003
    Bài viết:
    2
    Đã được thích:
    0
    Xin vui lòng giúp tôi - Excel

    Tôi đang thực hiện một đọan code export database từ mySql sang excel bằng ngôn ngữ php nhưng excel không hiểu được unicode, bác nào biết chỉ giúp, xin chân thành cảm ơn
  2. the_sound_of_heart

    the_sound_of_heart Thành viên mới Đang bị khóa

    Tham gia ngày:
    29/03/2004
    Bài viết:
    155
    Đã được thích:
    0
    Chào bạn chieu_tim,
    Việc bạn lưu một thông tin nào đó vào CSDL, tuỳ thuộc vào kiểu, mức độ mã hoá..... mà bị thay đổi cấu trúc gốc đi nhiều hay ít. Mình giả thiết bạn lưu thông tin dưới dạng text đơn thuần, và lỗi bạn gặp phải chỉ nằm ở việc bạn không hiển thị được đúng những kí tự tiếng Việt hoặc 1 tiếng nước nào đó có thêm nhiều kí tự không thuần Latin.
    Vấn đề Exel không hiển thị đúng kí tự có 2 khả năng, ta hãy xét quãng đường đi của một khối kí tự nào đó để hiểu thêm vấn đề:
    Khi được lưu vào MySQL dưới dạng text, khối này đơn thuần là những mã kí tự ASCII. Mỗi kí tự có 1 vị trị tương ứng trong bảng mã font, được xác định bằng giá trị mà nó mang. VD: ç: Alt+0231, ü : 0252 ...... Khi bạn tiến hành truy xuất, kết quả thu được chính là các mã ASCII. Sau đó, tuỳ thuộc vào font defined của bạn mà dữ liệu sẽ được hiển thị tương ứng. Thông thường thì với các font thông dụng hiện nay, phần lớn các kí tự trong khoảng 0x21 đến 0xFF là giống nhau, phần mở rộng theo quy định Quốc tế từ 0100 đến FFFC thường cũng không khác nhau. Có một số phần mềm có nhu cầu đặc biệt được phép define thêm các kí tự từ FFFD trở đi, và sẽ thường phân phối font theo phần mềm, những dạng bất chuẩn tắc này mình không nói đến nhé! Vậy nếu chúng hầu hết là giống nhau thì vì sao của bạn lại bị hiển thị sai?
    Để có câu trả lời, chúng ta lại phải lần ngược lại khái niệm cơ bản về Unicode một chút. Unicode có 2 loại là Unicode Pre Compound và Unicode Compound, từ mỗi loại này lại phân ra nhiều kiểu theo từng yêu cầu khác nhau. Bạn hãy chắc chắn là dữ liệu bạn lưu trong database và kiểu bạn hiển thị có cùng chuẩn Unicode. Tiếp đến xem xét phần Export của bạn ra Exel.
    Trước khi xuất ra Exel, bạn nên xuất ra 1 Webpage trung gian thử trước, và nếu nó hiển thị không đúng, thì lỗi nằm ở giai đoạn xử lí biến của bạn. Hãy tìm nguyên nhân của lỗi này trong việc define các kiểu Unicode khác nhau của bạn, và cũng không quên chú ý lộ trình của biến chứa dữ liệu. Chỉ có hai nguyên nhân này có khả năng gây ra lỗi không hiển thị đúng.
    Vậy nếu trang web trung gian hiển thị đúng hoàn toàn, trong khi vào Exel vẫn không thấy hiển thị được? Bạn hãy chú ý là hàm của bạn chỉ có khả năng Export cho Exel mà không có thêm khả năng Define font (trừ khi bạn embed thêm macro define font, và macro này có hiệu lực). Trong khi đó, Exel thì lại không có khả năng nhận dạng kiểu font phù hợp. Nếu font mặc định trong Exel của bạn không khớp với font hiển thị của dữ liệu, chắc chắn việc hiển thị sẽ sai.
    Vậy bạn hãy lưu ý những vấn đề mà Hà đã nói nhé, chuyện này sẽ nhanh chóng được giải quyết thôi, cũng không có gì phức tạp lắm đúng không?
    Bạn lưu ý, nếu dân lập trình mà phàn nàn là "Exel không hiểu Unicode" thì người ta cười bạn đấy ạ.
    Em chân thành cảm ơn những bạn, anh chị em đã vote 5***** cho em!
    Ơ, sao mọi người lại biết em chỉ thích được vote 5***** thôi ạ?
  3. chieu_tim

    chieu_tim Thành viên mới

    Tham gia ngày:
    10/10/2003
    Bài viết:
    2
    Đã được thích:
    0
    Cảm ơn bạn đã trả lời cho chieu_tim, có lẽ văn chương của chieu_tim không được trôi chảy nên.... ý của chieu_tim là: khi lưu vào database mySql thì chieu_tim lưu nó dưới dạng utf-8, nhưng khi export qua excel thì không cách nào để excel hiểu được utf-8 thành unicode cả. Bạn có thể giúp cho chieu_tim giải quyết được vấn đề này không???

Chia sẻ trang này