I am starting to use XLWings (not that I like Excel, at all, but it is something I HAVE TO do). The thing is that I cannot find the way to make Python open a Workbook without showing it.
It seems the constructor for Workbooks in the old XLWings 0.6.4 was xlwings.Workbook, and one of the arguments was a flag 'app_visible' (see http://docs.xlwings.org/en/v0.6.4/api.html ).
However, in the new v0.9.2 Workbook has been replaced by Book, and Book does not have any such flag ( http://docs.xlwings.org/en/stable/api.html ). The App object does have it, and I thought that was the way to go. So I coded:
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()
But, regretably, when
book = xw.Book(filename)
is executed the 'visible' attribute of app suddenly becomes True, and the book is shown. I do not know if this is a desired feature or an unexpected behaviour. Anyway, any ideas how should I do it?
Here is my working code fragment:
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()
You could try 'with open', for example
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)
You can also try:
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()
This works for me:
import xlwings as xw
app = xw.App(visible=False)
readsheet = xw.Book('FILE_PATH').sheets['Sheet1']
df = pd.DataFrame(readsheet.range('A1', 'Z99').value)
Since version 0.24.3 with xw.App
is implemented, and this should normally be used:
import xlwings as xw
with xw.App(visible=False) as app:
book = xw.Book(filename)
# Do some stuff e.g.
book.sheets[0]["A1"].value = "test"
book.save(file_path)
book.close()
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.