我也在编写代码,以对excel工作表的输入执行GIS功能。有时excel工作表会进来,并在其属性字段的顶部有2行,而当有2行时,我需要删除第一行。如果需要的话,单元格A1的值将被命名
我试图编写代码以检查并删除它,如下所示;
apply()
如果if函数通过,它应该只删除第一行,但是我得到了错误;
警告
openpyxl
import arcpy, os, sys, csv, openpyxl
from arcpy import env
env.workspace = r"C:\Users\myname\Desktop\Yanko's tool"
arcpy.env.overwriteOutput = True
excel = r"C:\Users\myname\Desktop\Yanko's tool\Yanko's Duplicate tool\Construction_table_Example.xlsx"
layer = r"C:\Users\myname\Desktop\Yanko's tool\Yanko's Duplicate tool\Example_Polygons.shp"
output = r"C:\Users\myname\Desktop\Yanko's tool\\Yanko's Duplicate tool"
book = openpyxl.load_workbook(excel)
book.get_sheet_by_name("Construction Table format")
if ws.cell(row=1, column=1).value == "Naming":
ws.delete_rows(1, 1)
book.save
book.close
在弄清我做错了什么方面的任何帮助将不胜感激
谢谢
答案 0 :(得分:0)
首先,根据docs,不推荐使用get_sheet_by_name
函数,您应该使用工作表名称来获取该函数:
book["Construction Table format"]
要注意的另一件事,在您的代码中,我看不到您设置了ws
值,该值应该设置为返回的表单对象。如果您将其设置在其他位置,则可能使用的是不具有该功能的另一个工作表对象
ws=book["Construction Table format"]
除此之外,您还必须共享堆栈跟踪以更好地了解发生了什么