Mapping với Excel

Gaup
07-10-09, 03:37
Em muốn tạo một số map đơn giản dùng trong Excel mà không hiểu nên bắt đầu thế nào. Ví dụ như tạo một nút trên toolbar của Excel 2007 để hiện ra các lựa chọn bản đồ thế giới. Tuỳ lựa chọn của mình thì bản đồ sẽ map các dữ liệu như mức tăng trưởng kinh tế, rủi ro chính trị, rủi ro kinh tế, và các chỉ tiêu khác tuỳ ý, các khác biệt được code theo mầu. Cái này cần phải chạy được như một add-in trong Excel vì trong các buổi họp em cần ngay lập tức look up các dữ liệu và thể hiện trên bản đồ.

Ngoài ra các bác có biết chương trình lập biểu đồ chart, graph kiểu tương tự cũng dùng cho Excel thì chia sẻ em với nhé. Thanks các bạn.
wasabi
07-10-09, 09:56
Tạo button trên Excel 2007 ribbon không khó và có video của MS hướng dẫn luôn từ A-Z đây:
http://msdn.microsoft.com/en-us/library/bb410115.aspx

Chuyện chọn nước trên thế giới cũng không khó nốt và dù bạn Gaup thích click thì cũng không nên làm một cái bản đồ click vào nước ví dụ như Vatican City thì ốm đòn. Hãy làm một textbox rồi nếu đánh hai ký tự đầu nó sẽ tự suggest như thể Google Search. Còn nếu không làm combo box cũng có thể gõ ký tự đầu rồi chọn rất nhanh được. (Thay vì phải click phỏng ạ...) Còn nếu muốn thật fancy cho các bạn lác thì phải làm google plugin cho Google Earth xong xoay đến nước phát nó hiện ra data theo dạng tooltip... kiểu thế.

Còn chuyện hiện ra các chỉ số khác nhau code theo mầu thì em nghĩ là nên làm bằng Conditional Formatting thì xong hẳn.

Cái khó là tư duy của các vị làm kinh tế không học code nghiêm chỉnh mà cho thỉnh thoảng phải code cái gì thì đúng là vãi chưởng: Hôm qua hôm kia em nhìn phải quả code nhập vào hai tháng khác nhau có ông chơi ngay copy paste ra 2 cái forms VBA gần giống hệt nhau chỉ khác mỗi cái title là Month1 và Month2 và ổng sửa code bên trong để một cái Select range của sheet10 một cái Select range của sheet11.... chán hẳn.
Giàng
07-10-09, 12:38
Cái khó là tư duy của các vị làm kinh tế không học code nghiêm chỉnh mà cho thỉnh thoảng phải code cái gì thì đúng là vãi chưởng: Hôm qua hôm kia em nhìn phải quả code nhập vào hai tháng khác nhau có ông chơi ngay copy paste ra 2 cái forms VBA gần giống hệt nhau chỉ khác mỗi cái title là Month1 và Month2 và ổng sửa code bên trong để một cái Select range của sheet10 một cái Select range của sheet11.... chán hẳn.

Bi ơi anh chuyên đi buôn phần mềm đây mà cũng tuyền làm thế. hị hị, tha nhỗi cho anh :D
Gaup
07-10-09, 21:28
Cảm ơn Bi phò nhưng mà các cái bản đồ nó kiểu thế này này:

http://www.softill.com/

Để làm ra những cái kiểu thế này:

http://politicalmaps.org/

Ai có cách gì cho mình xin.
Trùy
07-10-09, 23:11
Bác Gấu chã phục vụ cho công việc sao không mua luôn một bản Mapland chính cái site bác đưa mà xài, đâu 100$, nó lại tối ưu cho bác hết rồi mất time code code mệt bác ơi.

Còn nếu bác em thích mày mò chơi code thì lại là chuyện khác.
Gaup
07-10-09, 23:15
Cái đấy dùng như kít, Truỳ ạ.

Anh nghĩ lại rồi chắc đ dùng những thứ addin trong Excel nữa. Giờ mới mò ra mấy thứ như fusionmaps với smartdraw thấy có nhiều map hay nhưng giờ phải ngồi nghĩ kế để link với nhiều loại data update thường xuyên mệt bỏ mẹ.'

Khôgn có cái gì ăn sẵn nhở. :)
wasabi
07-10-09, 23:25
À hiểu rùi, cái đó để em xem. Thực ra cái này hoàn toàn làm được bằng SVG + Javascript và em khi nào có hứng có thể làm cho anh một cái prototype code để anh sửa. Còn lúc nào thì em đ biết.

Bản đồ khu vực, thế giới đều có rất nhiều và sẵn - http://en.wikipedia.org/wiki/Wikipedia:Blank_maps - và truy cập các thành phần trong các bản đồ này bằng Javascript khá đơn giản và theo em được biết là cách chính thống để làm việc này. SVG có thể tưởng tượng như HTML cho các bản vẽ - có tỷ lệ zoom được, được trình duyệt "hiểu" từng thành phần chứ không phải là một cái "ảnh". Ví dụ cái Wordmap.svg có thành phần tên "vietNam" thì gọi một cái ví dụ như

getElementById("vietNam").color = red;

Sẽ tô Việt Nam đỏ,

getElementById("vietNam").onMouseOver = return changeColor(this,"blue");
Sẽ tô Việt Nam xanh khi di chuột lên.

Bây giờ nhiệm vụ của mình sẽ phải là viết một cái code VBA để generate cái mã HTML + Javascript để gọi cho trình duyệt nó hiển thị và xử lý...