web-dev-qa-db-ja.com

XLWINGSでワークブックを表示せずに開く

私はXLWingsを使い始めています(Excelがまったく好きではありませんが、それは私がしなければならないことです)。問題は、Python Workbookを表示せずに開く方法を見つけられないことです。

古いXLWings 0.6.4のワークブックのコンストラクターはxlwings.Workbookであり、引数の1つはフラグ 'app_visible'でした( http://docs.xlwings.org/en/v0.6.4を参照)。 /api.html )。

ただし、新しいv0.9.2では、WorkbookがBookに置き換えられ、Bookにはそのようなフラグはありません( http://docs.xlwings.org/en/stable/api.html )。 Appオブジェクトにはそれがあり、私はそれが進むべき道だと思いました。だから私はコーディングしました:

import xlwings as xw

app = xw.App(visible=False)
filename = os.path.join(PATH_Excel_SAMPLES, r"rangosConDatos_sample01.xls")
book = xw.Book(filename)
# Do stuff with the info in the book
book.close()  # Ya puedo cerrar el libro.
app.kill()

しかし、残念ながら、

book = xw.Book(filename)

実行すると、アプリの「表示」属性が突然Trueになり、本が表示されます。これが望ましい機能なのか、予期しない動作なのかはわかりません。とにかく、どのようなアイデアをどうすればいいですか?

22
zeycus

これが私の作業コードフラグメントです:

    import xlwings

    Excel_app = xlwings.App(visible=False)
    Excel_book = Excel_app.books.open('PATH_TO_YOUR_XLSX_FILE')
    Excel_book.save()
    Excel_book.close()
    Excel_app.quit()
2
Alexey Korolkov

たとえば、「オープン」で試すことができます

with open ("write.csv", "a", newline='') as file:  
    fields=['score', 'name']                       
    writer=csv.DictWriter(file, fieldnames=fields)
    writer.writerow({'score' : score, 'name' : username})

with open ("write.csv", "r") as file:
    sortlist=[]
    reader=csv.reader(file)
    for i in reader:
        sortlist.append(i)
1
Vinny122004

あなたも試すことができます:

import xlwings as xw

app = xw.App(visible=False)
book = xw.Book('PATH_TO_YOUR_XLSX_FILE')
sheet = book.sheets('sheetname')
df = sheet.range('A1:D10)
book.close()
app.quit()
0
Femosh