1. 程式人生 > >使用python從xls座標檔案中生成面要素

使用python從xls座標檔案中生成面要素

#根據xls檔案生成圖形資料,並賦值其它屬性資訊 # coding:utf8 import arcpy import xlrd   arcpy.env.workspace = r"F:\test.gdb" fc = "polygon" cursor = arcpy.da.InsertCursor(fc, ["欄位1", "欄位2", "欄位3", "[email protected]"]) xlsfile = xlrd.open_workbook(r"F:\test.xls", "r") mysheet1 = xlsfile.sheet_by_name("sheet1") polygonarray = arcpy.Array() rownum = mysheet1.nrows colnum = mysheet1.ncols fid = "" count = 0 ismark = False i = 0 try:     for i in range(rownum):         row = mysheet1.row_values(i)         flowsn = row[1]         if fid == "":             fid = int(row[0])         xmmc = row[2]         bh = int(row[3])         x = row[4]         y = row[5]         iswk = row[6]         pnt = arcpy.Point()         pnt.ID = bh         pnt.X = x         pnt.Y = y         if fid == row[0]:             if iswk == 1:                 polygonarray.add(pnt)             else:                 if ismark:                     polygonarray.add(pnt)                 else:                     polygonarray.add(arcpy.Point())                     ismark = True                     polygonarray.add(pnt)             if i == rownum - 1:                 poly = arcpy.Polygon(polygonarray)                 cursor.insertRow([fid, flowsn, xmmc, poly])                 print "要素{0}已經生成".format(fid)                 count = count + 1                 polygonarray.removeAll()                 ismark = False         else:             nfid = int(row[0])             poly = arcpy.Polygon(polygonarray)             row = mysheet1.row_values(i - 1)             flowsn = row[1]             xmmc = row[2]             fid = int(row[0])             cursor.insertRow([fid, flowsn, xmmc, poly])             print "要素{0}已經生成".format(fid)             count = count + 1             polygonarray.removeAll()             polygonarray.add(pnt)             fid = nfid             ismark = False except Exception as e:     print e.message if cursor:     del cursor print "共生成要素{0}個".format(count)