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.