免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 4736|回复: 50
收起左侧

[二次开发] Arcpy脚本实现三调地类统计

  [复制链接]

0

主题

6042

铜板

22

好友

至尊VIP

Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

积分
504
发表于 2022-8-8 00:35 | 显示全部楼层 |阅读模式
本帖最后由 ☆北风タ冽 于 2022-8-8 00:52 编辑

#自己编写的源码 -*- coding: cp936 -*-
#---------------------------------------------------------------------------
# Purpose : Arcpy脚本实现三调地类统计
# Author :付贵友
# Date :2020.08.05
# Version :
# ArcGIS 10.2.2
# Email :604825527@qq.com
# Notes :
#
#---------------------------------------------------------------------------
import arcpy,os,time,sys,openpyxl
import numpy as np
from openpyxl import Workbook
from openpyxl.styles import PatternFill,Border,Side,Alignment,Protection,Font,colors
from openpyxl.utils import get_column_letter, column_index_from_string
# reload(sys)
# sys.setdefaultencoding('utf8')
feaCls=arcpy.GetParameterAsText(0)
feaClsSDTB=arcpy.GetParameterAsText(1)
fieldDKBH=arcpy.GetParameterAsText(2)
xlsFile=arcpy.GetParameterAsText(3)
sumType=arcpy.GetParameterAsText(4)
class tabSD:
rowDLMC=["ZMJ","NYD","NYD00","0303","0304","0306","0402","NYD01","0101","0102","0103",
             "NYD02","0201","0202","0203","0204","NYD03","0301","0302","0305","0307","NYD04","0401","0403",
             "1006","NYD11","1103","1104","1107","NYD12","1202","1203","JSYD","JSYD05","05H1","0508","JSYD06",
             "0601","0602","0603","JSYD07","0701","0702","JSYD08","08H1","08H2","0809","0810","09","JSYD10",
             "1001","1002","1003","1004","1005","1007","1008","1009","1109","1201","WLYD","WLYD00","1105","1106",
             "1108","0404","WLYD11","1101","1102","1110","WLYD12","1204","1205","1206","1207"]
    def __init__(self):
self.tDic = {}
        self.sumRow=[0.00 for i in range(0, 75)]
    def add(self,head,DLBM,Area):
cId=self.rowDLMC.index(DLBM[0:4])
        if not head in self.tDic.keys():
self.tDic[head]=[0.00 for i in range(0, 75)]
        self.tDic[head][cId]+=Area
self.sum(self.tDic[head])

    def convert(self,cof,scale):
unit=float("0.{0:0>{1}}1".format(0,scale-1))
        listID=[x for x in range(3,7)]
        listID.extend([x for x in range(8,11)])
        listID.extend([x for x in range(12, 16)])
        listID.extend([x for x in range(17, 21)])
        listID.extend([x for x in range(22, 25)])
        listID.extend([x for x in range(26, 29)])
        listID.extend([x for x in range(30, 32)])
        listID.extend([x for x in range(34, 36)])
        listID.extend([x for x in range(37, 40)])
        listID.extend([x for x in range(41, 43)])
        listID.extend([x for x in range(44, 49)])
        listID.extend([x for x in range(50, 60)])
        listID.extend([x for x in range(62, 65)])
        listID.extend([x for x in range(67, 70)])
        listID.extend([x for x in range(71, 75)])
        sumMJ = self.getSumRow(self.tDic)[0]
        covSumMJ = round(sumMJ * cof, scale)
        cDic = {}
        for x, value in self.tDic.items():
covList = [round(v / sumMJ * covSumMJ, scale) for v in value]
            self.sum(covList)
            cDic[x] = covList
        while abs(self.getSumRow(cDic)[0] - covSumMJ) >=abs(unit)/2:
            for x, value in self.tDic.items():
diffList = [cDic[x][x0] - self.tDic[x][x0] * cof for x0 in listID]
                if self.getSumRow(cDic)[0] - covSumMJ > 0:
mId = diffList.index(max(diffList))
                    if cDic[x][listID[mId]]>0:cDic[x][listID[mId]] -= abs(unit)
                    self.sum(cDic[x])
                elif self.getSumRow(cDic)[0] - covSumMJ < 0:
mId = diffList.index(min(diffList))
                    if cDic[x][listID[mId]]>0:cDic[x][listID[mId]] += abs(unit)
                    self.sum(cDic[x])
        self.tDic = cDic
    def getSumRow(self,dic):
        return np.sum([x for x in dic.values()],axis=0)
    def sum(self,tb):
tb[2] = np.sum(tb[3:7], axis=0)
        tb[7] = np.sum(tb[8:11], axis=0)
        tb[11] = np.sum(tb[12:16], axis=0)
        tb[16] = np.sum(tb[17:21], axis=0)
        tb[21] = np.sum(tb[22:24], axis=0)
        tb[25] = np.sum(tb[26:29], axis=0)
        tb[29] = np.sum(tb[30:32], axis=0)
        tb[33] = np.sum(tb[34:36], axis=0)
        tb[36] = np.sum(tb[37:40], axis=0)
        tb[40] = np.sum(tb[41:43], axis=0)
        tb[43] = np.sum(tb[44:48], axis=0)
        tb[49] = np.sum(tb[50:58], axis=0)
        tb[61] = np.sum(tb[62:65], axis=0)
        tb[66] = np.sum(tb[67:70], axis=0)
        tb[70] = np.sum(tb[71:75], axis=0)
        tb[1] = tb[2] + tb[7] + tb[11] + tb[16] + \
                     tb[21] + tb[24] + tb[25] + tb[29]
        tb[32] = tb[33] + tb[36] + tb[40] + tb[43] + \
                      tb[48] + tb[49] + tb[58] + tb[59]
        tb[60] = tb[61] + tb[65] + tb[66] + tb[70]
        tb[0] = tb[1] + tb[32] + tb[60]

def getAreaTableSD(feaClsSDTB,feaClsDK,fieldDKBH):
desc = arcpy.Describe(feaClsDK)
    inFeatures = [feaClsSDTB,feaClsDK]
    if hasattr(desc, "path"):
envPath = desc.path
        arcpy.AddMessage("desc.path:" + desc.path)
        arcpy.env.workspace = os.path.split(desc.path)[0]
        arcpy.env.overwriteOutput = True
    else:
arcpy.AddMessage("Get workspace error...")
        sys.exit(0)
    if hasattr(desc, "name"):
inName=desc.name
        if "shp" in desc.name:
arcpy.AddMessage("The workspace is shape!")
            inName=os.path.basename(desc.name).rstrip(os.path.splitext(desc.name)[1])
            intersectOutput = u"{0}\{1}_Temp.shp".format(envPath, inName)
        else:
arcpy.AddMessage("The workspace is  GDB!")
            intersectOutput = u"{0}\{1}_Temp".format(envPath, inName)
    else:
sys.exit(0)
    clusterTolerance = 0.0001
    arcpy.Intersect_analysis(inFeatures, intersectOutput, "", clusterTolerance, "INPUT")

    ##添加信息存储字段
m_field_names = [f.name for f in arcpy.ListFields(intersectOutput)]
    if "cTBMJ" in m_field_names:
arcpy.DeleteField_management(intersectOutput, ["cTBMJ"])
    arcpy.AddField_management(intersectOutput, "cTBMJ", "double", "", "", "", "")
    if "cKCMJ" in m_field_names:
arcpy.DeleteField_management(intersectOutput, ["cKCMJ"])
    arcpy.AddField_management(intersectOutput, "cKCMJ", "double", "", "", "", "")
    if "cTBDLMJ" in m_field_names:
arcpy.DeleteField_management(intersectOutput, ["cTBDLMJ"])
    arcpy.AddField_management(intersectOutput, "cTBDLMJ", "double", "", "", "", "")

    arcpy.CalculateField_management(intersectOutput, "cTBMJ", "!shape.area!", "PYTHON")
    arcpy.CalculateField_management(intersectOutput, "cKCMJ", "round([cTBMJ] * [KCXS] ,2)", "VB")
    arcpy.CalculateField_management(intersectOutput, "cTBDLMJ", "[cTBMJ]-[cKCMJ]", "VB")

    dicMJ={}
    inFields = [fieldDKBH, "DLBM", "QSXZ", "ZLDWMC", "cKCMJ", "cTBDLMJ"]
    if sumType.split(',')[1]=="QSDWMC":inFields = [fieldDKBH, "DLBM","QSXZ","QSDWMC","cKCMJ","cTBDLMJ"]
    result = arcpy.GetCount_management(intersectOutput)
    count = int(result.getOutput(0))
    if count==0:
arcpy.AddError("Intersect result is NULL...")
        sys.exit(0)
    feaCursor = arcpy.da.SearchCursor(intersectOutput, inFields)
    for row in feaCursor:
        if row[0]in[None,""] or sumType.split(',')[0]==u"/":dkbh=u"/"
else:dkbh=row[0]
        qsxz = u"国有"
if row[2] in ["30", "40"]: qsxz = u"集体"
if sumType.split(',')[2]== u"/":qsxz = u"/"
dwmc=row[3]
        if sumType.split(',')[1]==u"/":dwmc=u"/"
if sumType.split(',')[0] == u"/":
key=dwmc
            info="/,{0}".format(qsxz)
        else:
key =dkbh
            info="{0},{1}".format(dwmc,qsxz)
        if not key in dicMJ.keys():dicMJ[key] =tabSD()
        dicMJ[key].add(info, row[1], row[5])
        dicMJ[key].add(info, "1203", row[4])
    del feaCursor
    return dicMJ

###创建表格样式
font=Font(name=u"宋体",size=10,bold=False,italic=False,color="FF000000")

alignA=Alignment(horizontal='center', vertical='center', wrap_text=True)
alignB=Alignment(horizontal='center', vertical='center')
align_left=Alignment(horizontal="left",vertical="center")

#定义边框样式
def my_border(t_border, b_border, l_border, r_border):
border = Border(top=Side(border_style=t_border, color=colors.BLACK),
                    bottom=Side(border_style=b_border, color=colors.BLACK),
                    left=Side(border_style=l_border, color=colors.BLACK),
                    right=Side(border_style=r_border, color=colors.BLACK))
    return border

#初始化指定区域边框的线eg:("A","D",1,8)
def format_border(s_column,e_column,s_index, e_index,sheet):
    for row in tuple(sheet[s_column + str(s_index):e_column + str(e_index)]):
        for cell in row:
cell.border = my_border('thin', 'thin', 'thin', 'thin')

#指定区域设置字体和对齐、是否自动换行
def set_cell_font(rowMin,rowMax,colMin,colMax,font,align,sheet):
i=rowMin
j=colMin
for i in range(rowMin,rowMax+1):
        for j in range(colMin,colMax+1):
cell = sheet.cell(row=i, column=j)
            cell.font=font
cell.alignment=align
#指定区域外框设置粗框线(1,5,1,5,sheet)
def set_border_bold(rowMin,rowMax,colMin,colMax,ws):
# 设置左粗框线
for i in range(rowMin,rowMax+1):
cell=ws.cell(row=i,column=colMin)
        cell.border = my_border(cell.border.top.style, cell.border.bottom.style,'medium', cell.border.right.style)
    # 设置右粗框线
for i in range(rowMin,rowMax+1):#设置右粗框线
cell=ws.cell(row=i,column=colMax)
        cell.border = my_border(cell.border.top.style, cell.border.bottom.style,cell.border.left.style, 'medium')
    # 设置上粗框线
for i in range(colMin,colMax+1):
cell=ws.cell(row=rowMin,column=i)
        cell.border =  my_border('medium', cell.border.bottom.style,cell.border.left.style, cell.border.right.style)
    # 设置下粗框线
for i in range(colMin,colMax+1):
cell=ws.cell(row=rowMax,column=i)
        cell.border = my_border(cell.border.top.style, 'medium',cell.border.left.style, cell.border.right.style)

def fillSheet(dicMJ,title,sheet):
arcpy.AddMessage("Start Fill data...")
    fillSub = PatternFill(patternType="solid", fgColor="FFEFD5")
    fill = PatternFill(patternType="solid", fgColor="FFDEAD")
    sheet.column_dimensions['B'].width =20
    sheet.column_dimensions['C'].width =20

    sheet.merge_cells(start_row=3, end_row=5, start_column=2, end_column=2)
    sheet.cell(row=3, column=2, value=U"地块编号")
    sheet.merge_cells(start_row=3, end_row=5, start_column=3, end_column=3)
    sheet.cell(row=3, column=3, value=U"单位名称")
    sheet.merge_cells(start_row=3, end_row=5, start_column=4, end_column=4)
    sheet.cell(row=3, column=4, value=U"权属类别")
    sheet.merge_cells(start_row=3, end_row=5, start_column=5, end_column=5)
    sheet.cell(row=3, column=5, value=U"面积总计\n(公顷)")

    sheet.merge_cells(start_row=3, end_row=3, start_column=6, end_column=36)
    sheet.cell(row=3, column=6, value=U"农用地")
    sheet.merge_cells(start_row=4, end_row=5, start_column=6, end_column=6)
    sheet.cell(row=4, column=6, value=U"农用地小计")

    sheet.merge_cells(start_row=4, end_row=4, start_column=7, end_column=11)
    sheet.cell(row=4, column=7, value=U"湿地(00)")
    sheet.cell(row=5, column=7, value=U"小计")
    sheet.cell(row=5, column=8, value=U"红树林地\n(0303)")
    sheet.cell(row=5, column=9, value=U"森林沼泽\n(0304)")
    sheet.cell(row=5, column=10, value=U"灌丛沼泽\n(0306)")
    sheet.cell(row=5, column=11, value=U"沼泽草地\n(0402)")

    sheet.merge_cells(start_row=4, end_row=4, start_column=12, end_column=15)
    sheet.cell(row=4, column=12, value=U"耕地(01)")
    sheet.cell(row=5, column=12, value=U"小计")
    sheet.cell(row=5, column=13, value=U"水田\n(0101)")
    sheet.cell(row=5, column=14, value=U"水浇地\n(0102)")
    sheet.cell(row=5, column=15, value=U"旱地\n(0103)")

    sheet.merge_cells(start_row=4, end_row=4, start_column=16, end_column=20)
    sheet.cell(row=4, column=16, value=U"园地(02)")
    sheet.cell(row=5, column=16, value=U"小计")
    sheet.cell(row=5, column=17, value=U"果园\n(0201)")
    sheet.cell(row=5, column=18, value=U"茶园\n(0202)")
    sheet.cell(row=5, column=19, value=U"橡胶园\n(0203)")
    sheet.cell(row=5, column=20, value=U"其他园地\n(0203)")

    sheet.merge_cells(start_row=4, end_row=4, start_column=21, end_column=25)
    sheet.cell(row=4, column=21, value=U"林地(03)")
    sheet.cell(row=5, column=21, value=U"小计")
    sheet.cell(row=5, column=22, value=U"乔木林地\n(0301)")
    sheet.cell(row=5, column=23, value=U"竹林地\n(0302)")
    sheet.cell(row=5, column=24, value=U"灌木林地\n(0305)")
    sheet.cell(row=5, column=25, value=U"其他林地\n(0307)")

    sheet.merge_cells(start_row=4, end_row=4, start_column=26, end_column=28)
    sheet.cell(row=4, column=26, value=U"草地(04)")
    sheet.cell(row=5, column=26, value=U"小计")
    sheet.cell(row=5, column=27, value=U"天然牧草地\n(0401)")
    sheet.cell(row=5, column=28, value=U"人工牧草地\n(0403)")

    sheet.cell(row=4, column=29, value=U"交通运输用地(10)")
    sheet.cell(row=5, column=29, value=U"农村道路\n(1006)")

    sheet.merge_cells(start_row=4, end_row=4, start_column=30, end_column=33)
    sheet.cell(row=4, column=30, value=U"水域及水利设施用地(11)")
    sheet.cell(row=5, column=30, value=U"小计")
    sheet.cell(row=5, column=31, value=U"水库水面\n(1103)")
    sheet.cell(row=5, column=32, value=U"坑塘水面\n(1104)")
    sheet.cell(row=5, column=33, value=U"沟渠\n(1107)")

    sheet.merge_cells(start_row=4, end_row=4, start_column=34, end_column=36)
    sheet.cell(row=4, column=34, value=U"其他土地(12)")
    sheet.cell(row=5, column=34, value=U"小计")
    sheet.cell(row=5, column=35, value=U"设施农用地\n(1202)")
    sheet.cell(row=5, column=36, value=U"田坎\n(1203)")

    sheet.merge_cells(start_row=3, end_row=3, start_column=37, end_column=64)
    sheet.cell(row=3, column=37, value=U"建设用地")
    sheet.merge_cells(start_row=4, end_row=5, start_column=37, end_column=37)
    sheet.cell(row=4, column=37, value=U"建设用地\n小计")

    sheet.merge_cells(start_row=4, end_row=4, start_column=38, end_column=40)
    sheet.cell(row=4, column=38, value=U"商业服务业用地(05)")
    sheet.cell(row=5, column=38, value=U"小计\n(05)")
    sheet.cell(row=5, column=39, value=U"商业服务业设施用地\n(05H1)")
    sheet.cell(row=5, column=40, value=U"物流仓储用地\n(0508)")

    sheet.merge_cells(start_row=4, end_row=4, start_column=41, end_column=44)
    sheet.cell(row=4, column=41, value=U"工矿用地(06)")
    sheet.cell(row=5, column=41, value=U"小计\n(06)")
    sheet.cell(row=5, column=42, value=U"工业用地\n(0601)")
    sheet.cell(row=5, column=43, value=U"采矿用地\n(0602)")
    sheet.cell(row=5, column=44, value=U"盐田\n(0603)")

    sheet.merge_cells(start_row=4, end_row=4, start_column=45, end_column=47)
    sheet.cell(row=4, column=45, value=U"住宅用地(07)")
    sheet.cell(row=5, column=45, value=U"小计\n(07)")
    sheet.cell(row=5, column=46, value=U"城镇住宅用地\n(0701)")
    sheet.cell(row=5, column=47, value=U"农村宅基地\n(0702)")

    sheet.merge_cells(start_row=4, end_row=4, start_column=48, end_column=52)
    sheet.cell(row=4, column=48, value=U"公共管理与公共服务用地(08)")
    sheet.cell(row=5, column=48, value=U"小计\n(08)")
    sheet.cell(row=5, column=49, value=U"机关团体新闻出版用地\n(08H1)")
    sheet.cell(row=5, column=50, value=U"科教文卫用地\n(08H2)")
    sheet.cell(row=5, column=51, value=U"公共设施用地\n(0809)")
    sheet.cell(row=5, column=52, value=U"公园绿地\n(0810)")
    sheet.merge_cells(start_row=4, end_row=5, start_column=53, end_column=53)
    sheet.cell(row=4, column=53, value=U"特殊用地\n(09)")

    sheet.merge_cells(start_row=4, end_row=4, start_column=54, end_column=62)
    sheet.cell(row=4, column=54, value=U"交通运输用地(10)")
    sheet.cell(row=5, column=54, value=U"小计\n(10)")
    sheet.cell(row=5, column=55, value=U"铁路用地\n(1001)")
    sheet.cell(row=5, column=56, value=U"轨道交通用地\n(1002)")
    sheet.cell(row=5, column=57, value=U"公路用地\n(1003)")
    sheet.cell(row=5, column=58, value=U"城镇村道路用地\n(1004)")
    sheet.cell(row=5, column=59, value=U"交通服务场站用地\n(1005)")
    sheet.cell(row=5, column=60, value=U"机场用地\n(1007)")
    sheet.cell(row=5, column=61, value=U"港口码头用地\n(1008)")
    sheet.cell(row=5, column=62, value=U"管道运输\n(1009)")
    sheet.merge_cells(start_row=4, end_row=5, start_column=63, end_column=63)
    sheet.cell(row=4, column=63, value=U"水工建筑用地\n(1109)")

    sheet.merge_cells(start_row=4, end_row=5, start_column=64, end_column=64)
    sheet.cell(row=4, column=64, value=U"空闲地\n(1201)")

    sheet.merge_cells(start_row=3, end_row=3, start_column=65, end_column=79)
    sheet.cell(row=3, column=65, value=U"未利用地")
    sheet.merge_cells(start_row=4, end_row=5, start_column=65, end_column=65)
    sheet.cell(row=4, column=65, value=U"未利用地\n小计")

    sheet.merge_cells(start_row=4, end_row=4, start_column=66, end_column=69)
    sheet.cell(row=4, column=66, value=U"湿地(00)")
    sheet.cell(row=5, column=66, value=U"小计")
    sheet.cell(row=5, column=67, value=U"沿海滩涂\n(1105)")
    sheet.cell(row=5, column=68, value=U"内陆滩涂\n(1106)")
    sheet.cell(row=5, column=69, value=U"沼泽地\n(1108)")
    sheet.cell(row=4, column=70, value=U"草地\n(04)")
    sheet.cell(row=5, column=70, value=U"其他草地\n(0404)")

    sheet.merge_cells(start_row=4, end_row=4, start_column=71, end_column=74)
    sheet.cell(row=4, column=71, value=U"水域及水利设施用地(11)")
    sheet.cell(row=5, column=71, value=U"小计")
    sheet.cell(row=5, column=72, value=U"河流水面\n(1101)")
    sheet.cell(row=5, column=73, value=U"湖泊水面\n(1102)")
    sheet.cell(row=5, column=74, value=U"冰川及永久积雪\n(1110)")

    sheet.merge_cells(start_row=4, end_row=4, start_column=75, end_column=79)
    sheet.cell(row=4, column=75, value=U"其他土地(12)")
    sheet.cell(row=5, column=75, value=U"小计")
    sheet.cell(row=5, column=76, value=U"盐碱地\n(1204)")
    sheet.cell(row=5, column=77, value=U"沙地\n(1205)")
    sheet.cell(row=5, column=78, value=U"裸土地\n(1206)")
    sheet.cell(row=5, column=79, value=U"裸岩石砾地\n(1207)")

    roId = 6
    listGY = []
    listJT = []
    listHJ = []
    for key in sorted(dicMJ.keys()):
value = dicMJ[key]
        value.convert(0.0001, 4)
        for key0 in sorted(value.tDic.keys()):
value0 = value.tDic[key0]
            sheet.cell(row=roId, column=2, value=key)
            sheet.cell(row=roId, column=3, value=key0.split(',')[0])
            sheet.cell(row=roId, column=4, value=key0.split(',')[1])
            listHJ.append(value0)
            if u"国有" in key0: listGY.append(value0)
            if u"集体" in key0: listJT.append(value0)
            coId = 5
            for x in value0:
sheet.cell(row=roId, column=coId, value=x)
                coId += 1
            roId += 1
        if len(value.tDic.keys()) >= 2:
coId = 5
            sumRow = value.getSumRow(value.tDic)  ##小计行
sheet.cell(row=roId, column=2, value=key).fill = fillSub
            sheet.cell(row=roId, column=3, value="小计").fill = fillSub
            sheet.cell(row=roId, column=4, value="/").fill = fillSub
            for x in sumRow:
sheet.cell(row=roId, column=coId, value=x).fill = fillSub
                coId += 1
            roId += 1
    sumHJ = [0.00 for i in range(0, 75)]
    sumHJ = np.sum(np.array(listHJ), axis=0)
    sheet.cell(row=roId, column=2, value=u"面积总计").fill = fill
    sheet.cell(row=roId, column=3, value="/").fill = fill
    sheet.cell(row=roId, column=4, value="/").fill = fill
    coId = 5
    for x in sumHJ:
sheet.cell(row=roId, column=coId, value=None).fill = fill
        if x >= 0.00005: sheet.cell(row=roId, column=coId, value=x).fill = fill
        coId += 1
    roId += 1

    if len(listJT) >= 1:
sumJT = np.sum(np.array(listJT), axis=0)
        sheet.cell(row=roId, column=2, value=u"其中集体土地")
        sheet.cell(row=roId, column=3, value="/")
        sheet.cell(row=roId, column=4, value=u"集体")
        coId = 5
        for x in sumJT:
sheet.cell(row=roId, column=coId, value=x)
            coId += 1
        roId += 1
    if len(listGY) >= 1:
sumGY = np.sum(np.array(listGY), axis=0)
        sheet.cell(row=roId, column=2, value=u"其中国有土地")
        sheet.cell(row=roId, column=3, value="/")
        sheet.cell(row=roId, column=4, value=u"国有")
        coId = 5
        for x in sumGY:
sheet.cell(row=roId, column=coId, value=x)
            coId += 1
        roId += 1
    set_cell_font(3, roId, 2, 79, font, alignA, sheet)
    format_border("B", "CA", 3, roId, sheet)  # 设置边框
set_border_bold(3, roId, 2, 79, sheet)  # 设置外框
areaTableSD=getAreaTableSD(feaClsSDTB,feaCls,fieldDKBH)
wb=Workbook()
ws=wb.create_sheet(title=u"AreaTableSD",index=0)
fillSheet(areaTableSD,areaTableSD,ws)
wb.save(xlsFile)
del wb

2022年第3批次.rar

9.03 KB, 下载次数: 503

实现的统计效果

评分

参与人数 2威望 +10 铜板 +60 收起 理由
heart + 10 + 50 发个工具箱吧
759944659 + 10 地信网的成长离不开您的支持!

查看全部评分

1

主题

1万

铜板

3

好友

地信院士

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

积分
2493
发表于 2022-8-8 11:42 | 显示全部楼层
怎么变成tbx呢?
回复 支持 0 反对 1

使用道具 举报

0

主题

9053

铜板

10

好友

至尊VIP

Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

积分
884
发表于 2022-8-8 09:33 | 显示全部楼层
高手谢谢分享
回复 支持 反对

使用道具 举报

11

主题

1万

铜板

33

好友

地信名人堂

Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19

积分
1660

精华勋章宣传勋章爱心勋章组织勋章地信元老灌水勋章荣誉会员勋章活跃勋章地信专家组VIP勋章贡献勋章名人堂勋章成就学员勋章

发表于 2022-8-8 10:14 | 显示全部楼层
还在学Python正好看看脚本
回复 支持 反对

使用道具 举报

2

主题

2万

铜板

16

好友

地信名人堂

Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19

积分
2698

精华勋章宣传勋章爱心勋章组织勋章地信元老灌水勋章荣誉会员勋章活跃勋章地信专家组VIP勋章贡献勋章名人堂勋章冰雪节勋章成就学员勋章10周年纪念勋章

发表于 2022-8-8 10:25 | 显示全部楼层
有点荒凉的地
回复

使用道具 举报

0

主题

6万

铜板

7

好友

银牌会员

Rank: 12Rank: 12Rank: 12

积分
143999

精华勋章童话节勋章12周年纪念勋章贡献勋章灌水勋章宣传勋章

发表于 2022-8-8 10:48 | 显示全部楼层
学习一下
回复

使用道具 举报

1

主题

1万

铜板

3

好友

地信院士

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

积分
2493
发表于 2022-8-8 11:41 | 显示全部楼层

高手谢谢分享
高手谢谢分享
回复 支持 反对

使用道具 举报

1

主题

2万

铜板

16

好友

至尊VIP

Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

积分
1477
发表于 2022-8-8 12:39 | 显示全部楼层
很详细了,UP主:zt:zt
回复 支持 反对

使用道具 举报

2

主题

1万

铜板

12

好友

至尊VIP

Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

积分
1269
发表于 2022-8-8 13:50 | 显示全部楼层
感谢分享……
回复

使用道具 举报

26

主题

1万

铜板

96

好友

地信贵宾

Rank: 13Rank: 13Rank: 13Rank: 13

积分
474377

精华勋章宣传勋章爱心勋章优秀斑主地信元老灌水勋章荣誉会员勋章活跃勋章贡献勋章

QQ
发表于 2022-8-8 14:05 手机频道 | 显示全部楼层
看一看,学习一下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表