#根据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)
原文地址:https://www.cnblogs.com/apromise/p/10021773.html