Inteligentne miasto, państwo i kod pocztowy w programie Excel

Spisie treści

Więc tworzysz arkusz kalkulacyjny, który wymaga od użytkownika wprowadzenia kodu pocztowego, miasta i województwa… Jak zbudować inteligentniejszy arkusz kalkulacyjny, który automatycznie wypełnia miasto i województwo po tym, jak użytkownik wprowadzi tylko kod pocztowy?

Patrzyłem na kilka podstawowych samouczków używanych przez programistów internetowych z XMLHttpRequest, takich jak ten, i zostałem zainspirowany do odtworzenia tej samej funkcjonalności tego doskonałego samouczka XMLHttpRequest w programie Excel (przewiń link, aby zobaczyć demo).

Powodzenie! Stworzyłem szybki film flash, aby zademonstrować kluczowanie zamka błyskawicznego i automatyczne zwracanie miasta i stanu w programie Excel.

A oto plik do pobrania arkusza kalkulacyjnego do zabawy (nie ma tak dużo kodu).

Jak to działa

1. Potrzebujesz bazy danych, która zawiera informacje o kodzie pocztowym/stanie/mieście. Pobierz to tutaj (poszedłem z MYSQL, jak pokazano).

2. Zwróć miasto i stan na podstawie zapytania o kod pocztowy z Bazy Danych, do zwrócenia tekstu użyłem PHP.

3. Powrót do programu Excel: Gdy zmienia się pole ZipCode, uruchamiane jest zdarzenie Worksheet_Change, które wysyła żądanie za pośrednictwem WinHTTP do strony PHP, która zwraca miasto i stan żądania z powrotem do programu Excel.

4. Używam funkcji Split(), aby przeanalizować ciąg i zapisać wyniki w arkuszu kalkulacyjnym.

Uwagi

Dlaczego nie zwrócić XML?

Jest to ciąg składający się tylko z dwóch słów, a tekst jest łatwy w obsłudze, gdy są tylko dwa słowa. XML mógł być jednak bardziej fajny, ponieważ mogłem po prostu zmapować dwa pola wynikowe do komórek i nazwać niestandardowy Importuj adres URL: za każdym razem.

Dlaczego nie połączyć się bezpośrednio z bazą danych?

Tak, to możliwe, ale wolałbym stworzyć „usługę”, w ten sposób każda tworzona przeze mnie aplikacja, na dowolnej platformie, może z niej korzystać.

Dlaczego po prostu nie zaimportować plików Zip do programu Excel i wykonać wyszukiwanie?

Jest to jednak możliwe, jednak jeśli z tabeli korzysta wiele skoroszytów, należy wprowadzić zmiany we wszystkich z nich.

Kody Zip w przykładzie mogą być nieaktualne.

Testowane tylko w XL2003.

wave wave wave wave wave