【问题标题】:getting the error; attributeerror: 'Worksheet' object has no attribute 'delete_rows' openpyxl得到错误;属性错误:“工作表”对象没有属性“删除行”openpyxl
【发布时间】:2019-03-28 17:46:59
【问题描述】:

我正在编写代码来执行 GIS 功能到 Excel 工作表的输入。有时 excel 工作表会进来并在其属性字段的顶部有 2 行单独的行,当有 2 行时,我需要删除第一行。如果我需要这样做,单元格 A1 的值将被命名

我尝试编写代码来检查并删除它,如下所示;

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

如果 if 函数通过 true,它应该只删除第一行,但我得到错误;

警告

(from warnings module):
  File "C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\lib\site-packages\openpyxl\reader\worksheet.py", line 310
    warn(msg)
UserWarning: Data Validation extension is not supported and will be removed
Traceback (most recent call last):
  File "C:\Users\ronan.corrigan\Desktop\Yanko's tool\Yanko's Duplicate tool\Yanko's Tool.py", line 31, in <module>
    ws.delete_rows(1, 1)
AttributeError: 'Worksheet' object has no attribute 'delete_rows'

任何帮助找出我做错了什么将不胜感激

谢谢

【问题讨论】:

  • Edit 您的问题并显示完整追溯
  • 检查你的 openpyxl 版本。
  • 我在一个月前安装了 openpyxl。我现在已经升级了它,它给了我同样的错误

标签: python openpyxl


【解决方案1】:

首先,根据docsget_sheet_by_name 函数已被弃用,您应该只使用工作表名称来获取函数:

book["Construction Table format"]

另外需要注意的是,在您的代码中,我没有看到您设置了 ws 值,该值应设置为返回的任何工作表对象。如果您将其设置在其他地方,那么您可能正在使用不具有该功能的其他工作表对象

ws=book["Construction Table format"]

除此之外,您还必须共享堆栈跟踪以更好地了解发生了什么问题

【讨论】:

  • 对不起,不知道我是如何在没有定义 ws 的情况下复制它的。我确实定义了它,但是我用你说的方式重新定义了它,它仍然有错误。
  • 我之前定义了Ws,不知道怎么复制的。使用您的方法定义 ws 会产生相同的错误。不确定堆栈跟踪是什么,但完整的错误消息是;警告(来自警告模块):文件“C:(openpyxlpath)\reader\worksheet.py”,第 310 行警告(msg)用户警告:不支持数据验证扩展并将被删除 Traceback(最近一次调用):文件“ C:(path)\Yanko's Tool.py", line 31, in ws.delete_rows(1, 1) AttributeError: 'Worksheet' object has no attribute 'delete_rows
  • 你用的是什么版本的openpyxl?
  • 2.6.2 是我使用的版本。通过(GIS)使用它的esri软件安装python 2.7
猜你喜欢
  • 2017-07-12
  • 1970-01-01
  • 1970-01-01
  • 2021-05-25
  • 2022-01-20
  • 1970-01-01
  • 1970-01-01
  • 2014-05-14
  • 2016-04-07
相关资源
最近更新 更多