получить ошибку;attributeerror: у объекта «Рабочий лист» нет атрибута «delete_rows» openpyxl - PullRequest
0 голосов
/ 28 марта 2019

Я пишу код для выполнения функций ГИС на входе в таблицу Excel. иногда на листе Excel появляются две отдельные строки в верхней части для полей атрибутов, а когда их две, мне нужно удалить верхнюю строку. значение ячейки 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'

любая помощь в выяснении того, что я сделал неправильно, будет принята с благодарностью

спасибо

1 Ответ

0 голосов
/ 28 марта 2019

Прежде всего, согласно документам , функция get_sheet_by_name устарела, и вам просто нужно использовать имя листа, чтобы получить функцию:

book["Construction Table format"]

ДругойСледует отметить, что в вашем коде я не вижу, чтобы вы устанавливали это значение ws, которое должно быть установлено для любого объекта листа, который возвращается.Если вы устанавливаете его где-то еще, возможно, вы используете другой объект листа, у которого нет этой функции

ws=book["Construction Table format"]

Кроме того, вам придется поделиться трассировкой стека.чтобы лучше понять, что ломается

...