シートが.xlsxファイルに存在するかどうかを確認し、存在しない場合は追加したいのですが。
book = load_workbook('test.xlsx')
writer = pd.ExcelWriter('test.xlsx', engine = 'openpyxl')
writer.book = book
if 'testSheet' in book.sheetnames:
pass
else:
book.add_sheet(book['testSheet'])
これが機能しない理由についてのアイデアはありますか?
私は明らかにあなたも必要な仕事をする関数を使いました。 xlwingsを使用していますが、openpyxlはわかりません。 3つの重要なケースに対処できます。
関数は(成功した場合)xlwings.Sheetオブジェクト(Excelシートオブジェクトのxlwingsに相当)を返します。xlwings.sheet.apiプロパティを使用して、ネイティブCOM "Sheet"オブジェクトに戻ることができます。
import xlwings as xw
def load_xlsh(SheetName):
foundBK = False
iBK = 0
try:
while (not foundBK) and iBK < len(xw.books):
srcBK = xw.books[iBK]
try:
srcSH = srcBK.sheets[SheetName]
foundBK = True
except:
iBK += 1
if foundBK == False:
srcBK.sheets.add(SheetName)
else:
return srcSH
except AttributeError:
print('No Workbooks open')
xlwings
を使用する場合、次のような別の方法があります。
wb = xw.Book(FileName)
sNamList = [sh.name for sh in Wb.sheets]
if 'sheetName' in sNamList: print('sheetName exists!')