使用 python 导出后删除 excel sheet 时出错
Error in deleting excel sheet after exporting using python
我正在尝试将 Excel 中的图表保存为 Python 中的图像文件。我正在使用 WIn32com,图表正在按要求导出,但是当我试图删除 ActiveSheet 时,它给我错误。
excel.ActiveSheet().Delete()
File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 192, in __call__
return self._get_good_object_(self._oleobj_.Invoke(*allArgs),self._olerepr_.defaultDispatchName,None)
pywintypes.com_error: (-2147352573, 'Member not found.', None, None)
对克服这个错误有什么帮助吗?
下面是我的代码:
import win32com.client as win32
def saveChart():
excel = win32.Dispatch("Excel.Application")
wb = excel.Workbooks.Open(r'C:\Users\projects\Rating.xlsx')
selection = "A1:K16"
xl_range = wb.Sheets("Categories").Range(selection)
excel.ActiveWorkbook.Sheets.Add().Name="image_sheet"
cht = excel.ActiveSheet.ChartObjects().Add(0,0,xl_range.Width, xl_range.Height)
xl_range.CopyPicture()
cht.Chart.Paste()
cht.Chart.Export(r'C:\Users\projects\MyExportedChart.png')
excel.DisplayAlerts = False
cht.Delete()
excel.ActiveSheet.Delete()
excel.DisplayAlerts = True
excel.ActiveWorkbook.Close()
我从 Export Charts from Excel as images using Python
中获取了代码
更新了有效的代码
ActiveSheet
是一个字段,就像您在这里使用的一样:
cht = excel.ActiveSheet.ChartObjects().Add(0,0,xl_range.Width, xl_range.Height)
或者像您在这里使用的方法:
excel.ActiveSheet().Delete()
由于第一个调用没有报错,报错是找不到成员,我猜第二个是错的,应该是:
excel.ActiveSheet.Delete()
我正在尝试将 Excel 中的图表保存为 Python 中的图像文件。我正在使用 WIn32com,图表正在按要求导出,但是当我试图删除 ActiveSheet 时,它给我错误。
excel.ActiveSheet().Delete()
File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 192, in __call__
return self._get_good_object_(self._oleobj_.Invoke(*allArgs),self._olerepr_.defaultDispatchName,None)
pywintypes.com_error: (-2147352573, 'Member not found.', None, None)
对克服这个错误有什么帮助吗?
下面是我的代码:
import win32com.client as win32
def saveChart():
excel = win32.Dispatch("Excel.Application")
wb = excel.Workbooks.Open(r'C:\Users\projects\Rating.xlsx')
selection = "A1:K16"
xl_range = wb.Sheets("Categories").Range(selection)
excel.ActiveWorkbook.Sheets.Add().Name="image_sheet"
cht = excel.ActiveSheet.ChartObjects().Add(0,0,xl_range.Width, xl_range.Height)
xl_range.CopyPicture()
cht.Chart.Paste()
cht.Chart.Export(r'C:\Users\projects\MyExportedChart.png')
excel.DisplayAlerts = False
cht.Delete()
excel.ActiveSheet.Delete()
excel.DisplayAlerts = True
excel.ActiveWorkbook.Close()
我从 Export Charts from Excel as images using Python
中获取了代码更新了有效的代码
ActiveSheet
是一个字段,就像您在这里使用的一样:
cht = excel.ActiveSheet.ChartObjects().Add(0,0,xl_range.Width, xl_range.Height)
或者像您在这里使用的方法:
excel.ActiveSheet().Delete()
由于第一个调用没有报错,报错是找不到成员,我猜第二个是错的,应该是:
excel.ActiveSheet.Delete()