반응형
python win32 COM 마감 엑셀 워크북
COM에서 여러 가지 워크북(excell xlsx 형식)을 열어 엉망으로 만듭니다.프로그램이 진행됨에 따라 하나의 특정 워크북을 닫고 나머지 워크북은 열어두고 싶습니다.
워크북 하나를 닫으려면 어떻게 해야 합니까?(엑셀 어플리케이션 전체 삭제)
xl = Dispatch("Excel.Application")
xl.Visible = False
try:
output = xl.Workbooks.Open(workbookName)
output2 = xl.Workbooks.Open(workbook2Name)
except com_error:
print "you screwed up blahblahblah"
exit()
#work on some stuff
#close output but keep output2 open
Workbook COM 개체에는 Close() 메서드가 있습니다.기본적으로 다음과 같은 것이어야 합니다.
xl = Dispatch('Excel.Application')
wb = xl.Workbooks.Open('New Workbook.xlsx')
# do some stuff
wb.Close(True) # save the workbook
위의 내용은 단순한 뼈대에 불과합니다. 여기 Office 2010에 대한 제 컴퓨터에서 작동하는 코드가 있습니다.
from win32com.client import Dispatch
xl = Dispatch('Excel.Application')
wb = xl.Workbooks.Add()
ws = wb.Worksheets.Add()
cell = ws.Cells(1)
cell.Value = 'Some text'
wb.Close(True, r'C:\Path\to\folder\Test.xlsx')
물론, 그러면 새 xlsx 파일이 생성됩니다.하지만 다음과 같이 같은 세션에서 파일을 성공적으로 열고 수정할 수 있습니다.
wb = xl.Workbooks.Open(r'C:\Path\to\folder\Test.xlsx')
ws = wb.Worksheets(1)
cell = ws.Cells(2)
cell.Value = 'Some more text'
wb.Close(True)
그게 도움이 될지는 모르겠지만...
다음 코드를 사용해 볼 수도 있습니다.
excel = Dispatch("Excel.Application")
excel.Visible = False
workbook = excel.Workbooks.Open(fileName)
# with saving
excel.DisplayAlerts = False
if saveAs:
excel.ActiveWorkbook.SaveAs(fullFileNameToSave)
else:
excel.ActiveWorkbook.Save()
excel.Quit()
#without saving
map(lambda book: book.Close(False), excel.Workbooks)
excel.Quit()
이 함수는 열려 있는 모든 엑셀 파일을 닫습니다.
import os
def closeFile():
try:
os.system('TASKKILL /F /IM excel.exe')
except Exception:
print("KU")
closeFile()
def setAutoFilter(self,ws,AmountToMatch):
amounttopass = f"{AmountToMatch}"
print("The Amount of that month is ::",amounttopass)
ws.Range("B:G").AutoFilter(Field=6, Criteria1=amounttopass,VisibleDropDown=False)
time.sleep(timeout)
언급URL : https://stackoverflow.com/questions/6337595/python-win32-com-closing-excel-workbook
반응형
'programing' 카테고리의 다른 글
Android - 가로 모드의 에뮬레이터, 화면이 회전하지 않음 (0) | 2023.09.14 |
---|---|
wp.mce.views gallery 재정의 기본 'slot-slot' 템플릿 (0) | 2023.09.14 |
팬더 데이터 프레임에 대한 그룹별 및 pivot_table의 차이 (0) | 2023.09.14 |
라라벨에서 서비스 컨테이너의 개념은? (0) | 2023.09.14 |
주석에 포함되지 않은 경우 특정 내용을 선택하는 정규식 (0) | 2023.09.14 |