• Thứ Sáu, 17/03/2006 14:23 (GMT+7)

    Lập trình VB6 và xử lý dữ liệu trong file Excel

    Câu hỏi :
    Lập trình VB6 xử lí dữ liệu trong file Excel, yêu cầu đọc dữ liệu từ Excel nhập vào CSDL SQL Server2000, gặp khó khăn ở chỗ: file Excel có cấu trúc không chuẩn, số cột - số trường không cố định, các cột không được bố trí ở một vị trí nhất định... Hơn nữa, khi file Excel lớn, tôi không thể nạp hết toàn bộ vào ô lưới (tôi dùng FlexGrid). Xin hướng dẫn.


    Trả lời :

    Việc chuyển đổi dữ liệu từ định dạng này sang định dạng khác là yêu cầu phổ biến của nhiều người, do đó hầu hết các ứng dụng quản lý dữ liệu như Excel, Access,... đều có hỗ trợ chức năng cho phép người dùng chuyển đổi qua lại giữa các định dạng và bạn nên dùng các chức năng chuyển đổi sẵn có này. Thí dụ, nếu bạn muốn chuyển 1 worksheet Excel thành 1 table Access, bạn có thể chạy Access, chọn menu File.Get External Data.Import rồi thiết lập 1 số thông số chuyển đổi. Lưu ý rằng để việc chuyển đổi dữ liệu đúng theo mong muốn, bạn nên tuân thủ 1 số qui định. Thí dụ để chuyển 1 worksheet Excel thành 1 table của database, bạn nên dùng hàng đầu tiên của Worksheet để miêu tả tên các field dữ liệu, mỗi hàng sau đó của Worksheet sẽ chứa các field thông tin của record tương ứng. Thông thường ít khi người ta bỏ trống nhiều hàng hay nhiều cột xen giữa các hàng/cột dữ liệu, nếu có thì trước khi chuyển đổi, bạn nên khảo sát và xóa các hàng/cột trống này thủ công để việc chuyển đổi đúng theo mong muốn.

    Trong trường hợp bạn muốn tự lập trình ứng dụng chuyển đổi này, bạn cũng cần đặt ra 1 số qui định tối thiểu để người tạo worksheet tuân thủ, nhờ đó thuật toán chuyển đổi của bạn đơn giản và kết quả chuyển đổi đúng theo yêu cầu. Hơn nữa, để lập trình hiển thị và truy xuất các worksheet Excel dễ dàng và tin cậy nhất, bạn nên dùng thành phần “Excel Automation Server”, thành phần này cho phép bạn truy xuất file Excel dễ dàng và tự nhiên hơn nhiều so với việc dùng đối tượng FlexGrid hay DataGrid như bạn đề cập.

    Chuyên mục: Lập trình