Thành phố thông minh, Tiểu bang và Zip trong Excel

Mục lục

Vì vậy, bạn đang tạo một bảng tính yêu cầu người dùng nhập Mã ZipCode, Thành phố và Tiểu bang… Làm cách nào để bạn tạo một bảng tính thông minh hơn tự động điền Thành phố và Tiểu bang sau khi người dùng chỉ nhập Mã ZipCode?

Tôi đã xem một số hướng dẫn cơ bản mà các nhà phát triển web đang sử dụng với XMLHttpRequest, như hướng dẫn này và được truyền cảm hứng để tạo lại chức năng tương tự của hướng dẫn XMLHttpRequest tuyệt vời này trong Excel (cuộn xuống liên kết để xem bản trình diễn).

Sự thành công! Tôi đã tập hợp một đoạn phim flash nhanh để chứng minh việc khóa một mã zip và tự động trả về thành phố và tiểu bang trong Excel.

Và đây là bản tải xuống bảng tính để bắt đầu (không có nhiều mã như vậy).

Làm thế nào nó hoạt động

1. Bạn cần một cơ sở dữ liệu có mã vùng / tiểu bang / thông tin thành phố trong đó. Lấy điều đó ở đây (tôi đã sử dụng MYSQL như đã trình bày).

2. Trả về thành phố và tiểu bang dựa trên truy vấn mã zip từ Cơ sở dữ liệu, tôi đã sử dụng PHP để trả về văn bản.

3. Quay lại Excel: Khi trường ZipCode thay đổi, sự kiện Worksheet_Change kích hoạt, gửi yêu cầu qua WinHTTP đến trang PHP, trang này sẽ trả lại Thành phố và Tiểu bang cho Yêu cầu trở lại Excel.

4. Tôi sử dụng hàm Split () để phân tích cú pháp chuỗi và ghi kết quả vào bảng tính.

Ghi chú

Tại sao không trả về XML?

Nó chỉ là một chuỗi hai từ và văn bản rất dễ xử lý khi chỉ có hai từ. Tuy nhiên, XML có thể nhanh hơn vì tôi có thể chỉ ánh xạ hai trường kết quả vào các ô và được gọi là một tùy chỉnh Nhập URL: mỗi lần.

Tại sao không chỉ kết nối trực tiếp với DB?

Đúng vậy, điều đó có thể xảy ra, tuy nhiên tôi muốn tạo một “dịch vụ”, theo cách này, bất kỳ ứng dụng nào tôi tạo ra, trên bất kỳ nền tảng nào, đều có thể sử dụng nó.

Tại sao không chỉ nhập Zips vào Excel và thực hiện tra cứu?

Tuy nhiên, có thể xảy ra nếu nhiều sổ làm việc sử dụng bảng, cần phải thực hiện một thay đổi đối với tất cả chúng.

Các khóa kéo trong ví dụ này có thể đã lỗi thời.

Chỉ được thử nghiệm trong XL2003.

wave wave wave wave wave