หลายครั้งที่การพัฒนาระบบ GIS ต้องมีการเชื่อมต่อและทำการดึงข้อมูลจากระบบ MIS ไฟล์ข้อมูลต่างๆที่พบมักจะอยู่ในรูปแบบ excel กรณีที่มีแค่ไม่กี่ไฟล์ ก็สามารถใช้โปรแกรม GIS ทั่วไปแปลงได้ แต่พอมีไฟล์จำนวนมากๆหลายร้อยไฟล์เริ่มไม่สนุกแล้ว วันนี้ผมมีโค้ดภาษา python (script อเนกประสงค์) สำหรับแปลงไฟล์มาแนะนำกัน โดยจะแปลงจาก excel ให้เป็น CSV แล้วนำเข้าในระบบ GIS

         ภาษา python เป็นภาษาที่เข้าใจง่าย เขียนคล่อง รองรับ OOP ผมชอบใช้ในการจัดการข้อมูลหรือไดเรกทอรี่ หรือพัฒนาโปรแกรมขนาดเล็กๆแบบ console จำได้ว่าเคยใช้ python ในงานต่างๆหลายครั้ง แล้วก็ค่อนข้างสะดวก โดยเฉพาะเรื่องการจัดการไฟล์ ผมหัด python มาประมาณปีหนึ่งโดยได้รับการแนะนำจากอาจารย์ไพศาล ตอนนั้นใช้ในเรื่องจัดการไฟล์ภาพ (จำนวนเกือบห้าแสนไฟล์) ก็รู้สึกสะดวกดี นอกจากนี้ python ก็มี package สำหรับงาน GIS ขั้นสูงหลายๆตัวที่สามารถทำงานได้ดีไม่แพ้ซอฟท์แวร์ GIS อื่นๆ

       มาลองดูโค้ด Python กัน

def XLS2CSV(File): 
    ”’converts a MS Excel file to csv ”’
 
     print “—— Start Process ——“

     try:
          import win32com.client, os
          excel = win32com.client.Dispatch(‘Excel.Application’)
         fileDir, fileName = os.path.split(aFile)
         getname = os.path.splitext(fileName)
         newName = getname[0] + “.csv”
         myCSV = os.path.join(fileDir, newName)
         workbook = excel.Workbooks.Open(aFile)
         workbook.SaveAs(myCSV, FileFormat=24)

        workbook.Close(False)
         excel.Quit()
         del excel
  
         print “…Converted ” + nameOnly + ” to CSV”
    except:
         print “>>>>>>> Operation Faile !”

# Run Command

 convertXLS2CSV(r”D:\temp\popstat.xls”)

อ่านคู่มือ Python กับ CSV ได้ที่ http://docs.python.org/lib/csv-examples.html