Xlwings python закрыть excel

Updated

You can use wb.app.quit() when you want to close Excel and the associated workbook. Assume that wb is your workbook. Keep in mind that wb.app.quit() does’t work if you used wb.close() before wb.app.quit(). Here’s an example:

import xlwings as xw

path = r"test.xlsx"
wb = xw.Book(path)
wb.app.quit()

But also consider to open and close workbooks by using with xw.App() as app (since version 0.24.3), I can only recommend it:

import xlwings as xw

with xw.App() as app:
    wb = xw.Book("test.xlsx")

    # Do some stuff e.g.
    wb.sheets[0]["A1"].value = 12345

    wb.save("test.xlsx")
    wb.close()

The with statement ensures proper acquisition and release of resources. The with statement prevents, when an error occurs before closing Excel properly, the problem that Excel stays open and has possibly hidden excel processes left over in the background (because of xw.App(visible=False), if it is used). The with statement has also the advantage that you don’t need app.quit() anymore, because Excel closes anyway at the end of the with block. But wb.close() at the end of the with block is usable (but not necessary) – it achieves that the next time you open Excel, Excel will not display the message that Excel has recovered data that you may want to keep (as explained here).


As a side note, I had a situation where app.quit() did not work. In this case I used app.kill() instead.

I need to open and close the same workbook in a python for loop without necessarily saving the workbook. I tried the following in xlwings:

import xlwings as xw

for i in range(5):
    print(i)
    book = xw.Book()
    book.app.quit()

However this will only run for the first iteration. At the second iteration I get an error:

Traceback (most recent call last):
  File "D:/TEMP/SE/python/ref.py", line 5, in <module>
    book = xw.Book('tree_template.xlsx')
  File "C:UsersaboufiraAppDataLocalContinuumminiconda3envsSElibsite-packagesxlwingsmain.py", line 533, in __init__
    for wb in app.books:
  File "C:UsersaboufiraAppDataLocalContinuumminiconda3envsSElibsite-packagesxlwingsmain.py", line 374, in books
    return Books(impl=self.impl.books)
  File "C:UsersaboufiraAppDataLocalContinuumminiconda3envsSElibsite-packagesxlwings_xlwindows.py", line 397, in books
    return Books(xl=self.xl.Workbooks)
  File "C:UsersaboufiraAppDataLocalContinuumminiconda3envsSElibsite-packagesxlwings_xlwindows.py", line 313, in xl
    self._xl = get_xl_app_from_hwnd(self._hwnd)
  File "C:UsersaboufiraAppDataLocalContinuumminiconda3envsSElibsite-packagesxlwings_xlwindows.py", line 222, in get_xl_app_from_hwnd
    ptr = accessible_object_from_window(child_hwnd)
  File "C:UsersaboufiraAppDataLocalContinuumminiconda3envsSElibsite-packagesxlwings_xlwindows.py", line 190, in accessible_object_from_window
    res = oledll.oleacc.AccessibleObjectFromWindow(
  File "_ctypes/callproc.c", line 948, in GetResult
OSError: [WinError -2147467259] Unspecified error

Why does this occur? How can I get xlwings to exit out of the application without causing any problems?

Содержание

  1. Python API¶
  2. Top-level functions¶
  3. Object model¶
  4. Books¶
  5. PageSetup¶
  6. Sheets¶
  7. Sheet¶
  8. Range¶
  9. RangeRows¶
  10. RangeColumns¶
  11. Shapes¶
  12. Shape¶
  13. Charts¶
  14. Chart¶
  15. Pictures¶

Python API¶

Top-level functions¶

Opens a new workbook and displays an object on its first sheet by default. If you provide a sheet object, it will clear the sheet before displaying the object on the existing sheet.

Only use this in an interactive context like e.g. a Jupyter notebook! Don’t use this in a script as it depends on the active book.

Parameters:
  • obj (any type with built-in converter) – the object to display, e.g. numbers, strings, lists, numpy arrays, pandas dataframes
  • sheet (Sheet,default None) – Sheet object. If none provided, the first sheet of a new workbook is used.
  • table (bool,default True) – If your object is a pandas DataFrame, by default it is formatted as an Excel Table
  • chunksize (int,default 5000) – Chunks the loading of big arrays.

Changed in version 0.22.0.

Loads the selected cell(s) of the active workbook into a pandas DataFrame. If you select a single cell that has adjacent cells, the range is auto-expanded (via current region) and turned into a pandas DataFrame. If you don’t have pandas installed, it returns the values as nested lists.

Only use this in an interactive context like e.g. a Jupyter notebook! Don’t use this in a script as it depends on the active book.

Parameters:
  • index (boolorint,default 1) – Defines the number of columns on the left that will be turned into the DataFrame’s index
  • header (boolorint,default 1) – Defines the number of rows at the top that will be turned into the DataFrame’s columns
  • chunksize (int,default 5000) – Chunks the loading of big arrays.

Changed in version 0.23.1.

Object model¶

A collection of all app objects:

Returns the active app.

New in version 0.9.0.

Creates a new App. The new App becomes the active one. Returns an App object.

Returns the number of apps.

New in version 0.9.0.

Provides the PIDs of the Excel instances that act as keys in the Apps collection.

New in version 0.13.0.

An app corresponds to an Excel instance and should normally be used as context manager to make sure that everything is properly cleaned uup again and to prevent zombie processes. New Excel instances can be fired up like so:

An app object is a member of the apps collection:

Parameters:
  • visible (bool,default None) – Returns or sets a boolean value that determines whether the app is visible. The default leaves the state unchanged or sets visible=True if the object doesn’t exist yet.
  • spec (str,default None) –

Mac-only, use the full path to the Excel application, e.g. /Applications/Microsoft Office 2011/Microsoft Excel or /Applications/Microsoft Excel

On Windows, if you want to change the version of Excel that xlwings talks to, go to Control Panel > Programs and Features and Repair the Office version that you want as default.

On Mac, while xlwings allows you to run multiple instances of Excel, it’s a feature that is not officially supported by Excel for Mac: Unlike on Windows, Excel will not ask you to open a read-only version of a file if it is already open in another instance. This means that you need to watch out yourself so that the same file is not being overwritten from different instances.

Activates the Excel app.

Parameters: steal_focus (bool, default False) – If True, make frontmost application and hand over focus from Python to Excel.

New in version 0.9.0.

Returns the native object ( pywin32 or appscript obj) of the engine being used.

New in version 0.9.0.

A collection of all Book objects that are currently open.

New in version 0.9.0.

Calculates all open books.

New in version 0.3.6.

Returns or sets a calculation value that represents the calculation mode. Modes: ‘manual’ , ‘automatic’ , ‘semiautomatic’

Changed in version 0.9.0.

This function requires xlwings PRO .

This is a convenience wrapper around mysheet.render_template

Writes the values of all key word arguments to the output file according to the template and the variables contained in there (Jinja variable syntax). Following variable types are supported:

strings, numbers, lists, simple dicts, NumPy arrays, Pandas DataFrames, pictures and Matplotlib/Plotly figures.

Parameters:
  • template (strorpath-like object) – Path to your Excel template, e.g. r’C:Pathtomy_template.xlsx’
  • output (strorpath-like object) – Path to your Report, e.g. r’C:Pathtomy_report.xlsx’
  • book_settings (dict,default None) – A dictionary of xlwings.Book parameters, for details see: xlwings.Book . For example: book_settings= <‘update_links’: False>.
  • data (kwargs) – All key/value pairs that are used in the template.
Returns:

cut_copy_mode ¶

Gets or sets the status of the cut or copy mode. Accepts False for setting and returns None , copy or cut when getting the status.

New in version 0.24.0.

The default value is True. Set this property to False to suppress prompts and alert messages while code is running; when a message requires a response, Excel chooses the default response.

New in version 0.9.0.

True if events are enabled. Read/write boolean.

New in version 0.24.4.

Returns the Window handle (Windows-only).

New in version 0.9.0.

True if Excel is in interactive mode. If you set this property to False , Excel blocks all input from the keyboard and mouse (except input to dialog boxes that are displayed by your code). Read/write Boolean. Note: Not supported on macOS.

New in version 0.24.4.

Forces the Excel app to quit by killing its process.

New in version 0.9.0.

Runs a Sub or Function in Excel VBA that are not part of a specific workbook but e.g. are part of an add-in.

Parameters: name (Name of Sub or Function with or without module name, e.g. ‘Module1.MyMacro’ or ‘MyMacro’ ) –

This VBA function:

can be accessed like this:

New in version 0.9.0.

Returns the PID of the app.

New in version 0.9.0.

Context manager that allows you to easily change the app’s properties temporarily. Once the code leaves the with block, the properties are changed back to their previous state. Note: Must be used as context manager or else will have no effect. Also, you can only use app properties that you can both read and write.

New in version 0.24.4.

Quits the application without saving any workbooks.

New in version 0.3.3.

Range object from the active sheet of the active book, see Range() .

New in version 0.9.0.

Turn screen updating off to speed up your script. You won’t be able to see what the script is doing, but it will run faster. Remember to set the screen_updating property back to True when your script ends.

New in version 0.3.3.

Returns the selected cells as Range.

New in version 0.9.0.

Returns the path to XLSTART which is where the xlwings add-in gets copied to by doing xlwings addin install .

New in version 0.19.4.

Gets or sets the value of the status bar. Returns False if Excel has control of it.

New in version 0.20.0.

Returns the Excel version number object.

Changed in version 0.9.0.

Gets or sets the visibility of Excel to True or False .

New in version 0.3.3.

Books¶

A collection of all book objects:

New in version 0.9.0.

Returns the active Book.

Creates a new Book. The new Book becomes the active Book. Returns a Book object.

open ( fullname, update_links=None, read_only=None, format=None, password=None, write_res_password=None, ignore_read_only_recommended=None, origin=None, delimiter=None, editable=None, notify=None, converter=None, add_to_mru=None, local=None, corrupt_load=None ) ¶

Opens a Book if it is not open yet and returns it. If it is already open, it doesn’t raise an exception but simply returns the Book object.

Book

Book that has been opened.

A book object is a member of the books collection:

The easiest way to connect to a book is offered by xw.Book : it looks for the book in all app instances and returns an error, should the same book be open in multiple instances. To connect to a book in the active app instance, use xw.books and to refer to a specific app, use:

Parameters:
  • fullname (strorpath-like object) – filename or fully qualified filename, e.g. r’C:pathtofile.xlsx’ or ‘file.xlsm’ . Without a full path, it looks for the file in the current working directory.
  • Parameters (Other) – see: xlwings.Book()
Returns:
xw.Book xw.books
New book xw.Book() xw.books.add()
Unsaved book xw.Book(‘Book1’) xw.books[‘Book1’]
Book by (full)name xw.Book(r’C:/path/to/file.xlsx’) xw.books.open(r’C:/path/to/file.xlsx’)
Parameters:
  • fullname (strorpath-like object,default None) – Full path or name (incl. xlsx, xlsm etc.) of existing workbook or name of an unsaved workbook. Without a full path, it looks for the file in the current working directory.
  • update_links (bool,default None) – If this argument is omitted, the user is prompted to specify how links will be updated
  • read_only (bool,default False) – True to open workbook in read-only mode
  • format (str) – If opening a text file, this specifies the delimiter character
  • password (str) – Password to open a protected workbook
  • write_res_password (str) – Password to write to a write-reserved workbook
  • ignore_read_only_recommended (bool,default False) – Set to True to mute the read-only recommended message
  • origin (int) – For text files only. Specifies where it originated. Use XlPlatform constants.
  • delimiter (str) – If format argument is 6, this specifies the delimiter.
  • editable (bool,default False) – This option is only for legacy Microsoft Excel 4.0 addins.
  • notify (bool,default False) – Notify the user when a file becomes available If the file cannot be opened in read/write mode.
  • converter (int) – The index of the first file converter to try when opening the file.
  • add_to_mru (bool,default False) – Add this workbook to the list of recently added workbooks.
  • local (bool,default False) – If True , saves files against the language of Excel, otherwise against the language of VBA. Not supported on macOS.
  • corrupt_load (int,default xlNormalLoad) – Can be one of xlNormalLoad, xlRepairFile or xlExtractData. Not supported on macOS.

activate ( steal_focus=False ) ¶

Activates the book.

Parameters: steal_focus (bool, default False) – If True, make frontmost window and hand over focus from Python to Excel.

api ¶

Returns the native object ( pywin32 or appscript obj) of the engine being used.

New in version 0.9.0.

Returns an app object that represents the creator of the book.

New in version 0.9.0.

References the calling book when the Python function is called from Excel via RunPython . Pack it into the function being called from Excel, e.g.:

To be able to easily invoke such code from Python for debugging, use xw.Book.set_mock_caller() .

New in version 0.3.0.

Closes the book without saving it.

New in version 0.1.1.

Returns the name of the object, including its path on disk, as a string. Read-only String.

Runs a Sub or Function in Excel VBA.

Parameters: name (Name of Sub or Function with or without module name, e.g. ‘Module1.MyMacro’ or ‘MyMacro’ ) –

This VBA function:

can be accessed like this:

New in version 0.7.1.

Returns the name of the book as str.

Returns a names collection that represents all the names in the specified book (including all sheet-specific names).

Changed in version 0.9.0.

Saves the Workbook. If a path is being provided, this works like SaveAs() in Excel. If no path is specified and if the file hasn’t been saved previously, it’s being saved in the current working directory with the current filename. Existing files are overwritten without prompting.

Parameters: path (str or path-like object, default None) – Full path to the workbook

New in version 0.3.1.

Returns the selected cells as Range.

New in version 0.9.0.

Sets the Excel file which is used to mock xw.Book.caller() when the code is called from Python and not from Excel via RunPython .

New in version 0.3.1.

Returns a sheets collection that represents all the sheets in the book.

New in version 0.9.0.

Exports the whole Excel workbook or a subset of the sheets to a PDF file. If you want to print hidden sheets, you will need to list them explicitely under include .

Parameters:
  • path (strorpath-like object,default None) – Path to the PDF file, defaults to the same name as the workbook, in the same directory. For unsaved workbooks, it defaults to the current working directory instead.
  • include (intorstrorlist,default None) – Which sheets to include: provide a selection of sheets in the form of sheet indices (1-based like in Excel) or sheet names. Can be an int/str for a single sheet or a list of int/str for multiple sheets.
  • exclude (intorstrorlist,default None) – Which sheets to exclude: provide a selection of sheets in the form of sheet indices (1-based like in Excel) or sheet names. Can be an int/str for a single sheet or a list of int/str for multiple sheets.
  • layout (strorpath-like object,default None) –

This argument requires xlwings PRO .

Path to a PDF file on which the report will be printed. This is ideal for headers and footers as well as borderless printing of graphics/artwork. The PDF file either needs to have only 1 page (every report page uses the same layout) or otherwise needs the same amount of pages as the report (each report page is printed on the respective page in the layout PDF).

New in version 0.24.3.

Sheet names that start with this character/string will not be printed.

New in version 0.24.4.

Once created, open the PDF file with the default application.

New in version 0.24.6.

New in version 0.21.1.

PageSetup¶

Returns the native object ( pywin32 or appscript obj) of the engine being used.

New in version 0.24.2.

Gets or sets the range address that defines the print area.

New in version 0.24.2.

Sheets¶

A collection of all sheet objects:

New in version 0.9.0.

Returns the active Sheet.

Creates a new Sheet and makes it the active sheet.

Parameters:
  • name (str,default None) – Name of the new sheet. If None, will default to Excel’s default name.
  • before (Sheet,default None) – An object that specifies the sheet before which the new sheet is added.
  • after (Sheet,default None) – An object that specifies the sheet after which the new sheet is added.

Sheet¶

A sheet object is a member of the sheets collection:

Changed in version 0.9.0.

Activates the Sheet and returns it.

Returns the native object ( pywin32 or appscript obj) of the engine being used.

New in version 0.9.0.

Autofits the width of either columns, rows or both on a whole Sheet.

Parameters: axis (string,default None) –

  • To autofit rows, use one of the following: rows or r
  • To autofit columns, use one of the following: columns or c
  • To autofit rows and columns, provide no arguments

New in version 0.2.3.

Returns the Book of the specified Sheet. Read-only.

Returns a Range object that represents all the cells on the Sheet (not just the cells that are currently in use).

New in version 0.9.0.

New in version 0.9.0.

Clears the content and formatting of the whole sheet.

Clears the content of the whole sheet but leaves the formatting.

Copy a sheet to the current or a new Book. By default, it places the copied sheet after all existing sheets in the current Book. Returns the copied sheet.

New in version 0.22.0.

Sheet object – The copied sheet

Deletes the Sheet.

Returns the index of the Sheet (1-based as in Excel).

Gets or sets the name of the Sheet.

Returns a names collection that represents all the sheet-specific names (names defined with the “SheetName!” prefix).

New in version 0.9.0.

Returns a PageSetup object.

New in version 0.24.2.

New in version 0.9.0.

Returns a Range object from the active sheet of the active book, see Range() .

New in version 0.9.0.

This method requires xlwings PRO .

Replaces all Jinja variables (e.g << myvar >> ) in the sheet with the keyword argument that has the same name. Following variable types are supported:

strings, numbers, lists, simple dicts, NumPy arrays, Pandas DataFrames, PIL Image objects that have a filename and Matplotlib figures.

New in version 0.22.0.

Parameters:
  • before (sheet object,default None) – The sheet object before which you want to place the sheet
  • after (sheet object,default None) – The sheet object after which you want to place the sheet, by default it is placed after all existing sheets
  • name (str,default None) – The sheet name of the copy
Returns:
Parameters: data (kwargs) – All key/value pairs that are used in the template.
Returns: sheet
Return type: xlwings Sheet

Selects the Sheet. Select only works on the active book.

New in version 0.9.0.

New in version 0.9.0.

New in version 0.21.0.

Exports the sheet to a PDF file.

Parameters:
  • path (strorpath-like object,default None) – Path to the PDF file, defaults to the name of the sheet in the same directory of the workbook. For unsaved workbooks, it defaults to the current working directory instead.
  • layout (strorpath-like object,default None) –

This argument requires xlwings PRO .

Path to a PDF file on which the report will be printed. This is ideal for headers and footers as well as borderless printing of graphics/artwork. The PDF file either needs to have only 1 page (every report page uses the same layout) or otherwise needs the same amount of pages as the report (each report page is printed on the respective page in the layout PDF).

New in version 0.24.3.

Once created, open the PDF file with the default application.

New in version 0.24.6.

New in version 0.22.3.

Used Range of Sheet.

Returns:
Return type: xw.Range

New in version 0.13.0.

Gets or sets the visibility of the Sheet (bool).

New in version 0.21.1.

Range¶

Returns a Range object that represents a cell or a range of cells.

Parameters:
  • cell1 (strortupleorRange) – Name of the range in the upper-left corner in A1 notation or as index-tuple or as name or as xw.Range object. It can also specify a range using the range operator (a colon), .e.g. ‘A1:B2’
  • cell2 (strortupleorRange,default None) – Name of the range in the lower-right corner in A1 notation or as index-tuple or as name or as xw.Range object.

Adds a hyperlink to the specified Range (single Cell)

Parameters:
  • address (str) – The address of the hyperlink.
  • text_to_display (str,default None) – The text to be displayed for the hyperlink. Defaults to the hyperlink address.
  • screen_tip (str,default None) – The screen tip to be displayed when the mouse pointer is paused over the hyperlink. Default is set to ‘ — Click once to follow. Click and hold to select this cell.’

New in version 0.3.0.

Returns a string value that represents the range reference. Use get_address() to be able to provide paramaters.

New in version 0.9.0.

Returns the native object ( pywin32 or appscript obj) of the engine being used.

New in version 0.9.0.

Autofits the width and height of all cells in the range.

  • To autofit only the width of the columns use xw.Range(‘A1:B2’).columns.autofit()
  • To autofit only the height of the rows use xw.Range(‘A1:B2’).rows.autofit()

Changed in version 0.9.0.

Clears the content and the formatting of a Range.

Clears the content of a Range but leaves the formatting.

Gets and sets the background color of the specified Range.

To set the color, either use an RGB tuple (0, 0, 0) or a hex string like #efefef or an Excel color constant. To remove the background, set the color to None , see Examples.

Returns: RGB
Return type: tuple

New in version 0.3.0.

Returns the number of the first column in the in the specified range. Read-only.

Returns:
Return type: Integer

New in version 0.3.5.

Gets or sets the width, in characters, of a Range. One unit of column width is equal to the width of one character in the Normal style. For proportional fonts, the width of the character 0 (zero) is used.

If all columns in the Range have the same width, returns the width. If columns in the Range have different widths, returns None.

column_width must be in the range: 0

Returns:
Return type: float

New in version 0.4.0.

Returns a RangeColumns object that represents the columns in the specified range.

New in version 0.9.0.

Copy a range to a destination range or clipboard.

Parameters: destination (xlwings.Range) – xlwings Range to which the specified range will be copied. If omitted, the range is copied to the Clipboard.
Returns:
Return type: None

copy_picture ( appearance=’screen’, format=’picture’ ) ¶

Copies the range to the clipboard as picture.

Parameters:
  • appearance (str,default ‘screen’) – Either ‘screen’ or ‘printer’.
  • format (str,default ‘picture’) – Either ‘picture’ or ‘bitmap’.
  • versionadded: (.) – 0.24.8:

count ¶

Returns the number of cells.

This property returns a Range object representing a range bounded by (but not including) any combination of blank rows and blank columns or the edges of the worksheet. It corresponds to Ctrl-* on Windows and Shift-Ctrl-Space on Mac.

Returns:
Return type: Range object

delete ( shift=None ) ¶

Deletes a cell or range of cells.

Parameters: shift (str, default None) – Use left or up . If omitted, Excel decides based on the shape of the range.
Returns:
Return type: None

end ( direction ) ¶

Returns a Range object that represents the cell at the end of the region that contains the source range. Equivalent to pressing Ctrl+Up, Ctrl+down, Ctrl+left, or Ctrl+right.

Parameters: direction (One of ‘up’, ‘down’, ‘right’, ‘left’) –

New in version 0.9.0.

Expands the range according to the mode provided. Ignores empty top-left cells (unlike Range.end() ).

Parameters: mode (str, default ‘table’) – One of ‘table’ (=down and right), ‘down’ , ‘right’ .
Returns:
Return type: Range

New in version 0.9.0.

Gets or sets the formula for the given Range.

Gets or sets the formula2 for the given Range.

Gets or sets an array formula for the given Range.

New in version 0.7.1.

Returns the address of the range in the specified format. address can be used instead if none of the defaults need to be changed.

New in version 0.2.3.

Are we part of an Array formula?

Returns the height, in points, of a Range. Read-only.

Parameters:
  • row_absolute (bool,default True) – Set to True to return the row part of the reference as an absolute reference.
  • column_absolute (bool,default True) – Set to True to return the column part of the reference as an absolute reference.
  • include_sheetname (bool,default False) – Set to True to include the Sheet name in the address. Ignored if external=True.
  • external (bool,default False) – Set to True to return an external reference with workbook and worksheet name.
Returns:
Returns:
Return type: float

New in version 0.4.0.

Returns the hyperlink address of the specified Range (single Cell only)

New in version 0.3.0.

Insert a cell or range of cells into the sheet.

Parameters:
  • shift (str,default None) – Use right or down . If omitted, Excel decides based on the shape of the range.
  • copy_origin (str,default format_from_left_or_above) – Use format_from_left_or_above or format_from_right_or_below . Note that this is not supported on macOS.
Returns:

last_cell ¶

Returns the bottom right cell of the specified range. Read-only.

Returns:
Return type: Range

New in version 0.3.5.

Returns the distance, in points, from the left edge of column A to the left edge of the range. Read-only.

Returns:
Return type: float

New in version 0.6.0.

Creates a merged cell from the specified Range object.

Parameters: across (bool, default False) – True to merge cells in each row of the specified Range as separate merged cells.

merge_area ¶

Returns a Range object that represents the merged Range containing the specified cell. If the specified cell isn’t in a merged range, this property returns the specified cell.

Returns True if the Range contains merged cells, otherwise False

Sets or gets the name of a Range.

New in version 0.4.0.

Returns a Note object. Before the introduction of threaded comments, a Note was called a Comment.

New in version 0.24.2.

Gets and sets the number_format of a Range.

New in version 0.2.3.

Returns a Range object that represents a Range that’s offset from the specified range.

Returns: Range object
Return type: Range

New in version 0.3.0.

Allows you to set a converter and their options. Converters define how Excel Ranges and their values are being converted both during reading and writing operations. If no explicit converter is specified, the base converter is being applied, see Converters and Options .

convert (object, default None) – A converter, e.g. dict , np.array , pd.DataFrame , pd.Series , defaults to default converter

Keyword Arguments:
  • ndim (int,default None) – number of dimensions
  • numbers (type,default None) – type of numbers, e.g. int
  • dates (type,default None) – e.g. datetime.date defaults to datetime.datetime
  • empty (object,default None) – transformation of empty cells
  • transpose (Boolean,default False) – transpose values
  • expand (str,default None) – One of ‘table’ , ‘down’ , ‘right’
  • chunksize (int) – Use a chunksize, e.g. 10000 to prevent timeout or memory issues when reading or writing large amounts of data. Works with all formats, including DataFrames, NumPy arrays, and list of lists.

=> For converter-specific options, see Converters and Options .

New in version 0.7.0.

Pastes a range from the clipboard into the specified range.

Parameters:
  • paste (str,default None) – One of all_merging_conditional_formats , all , all_except_borders , all_using_source_theme , column_widths , comments , formats , formulas , formulas_and_number_formats , validation , values , values_and_number_formats .
  • operation (str,default None) – One of “add”, “divide”, “multiply”, “subtract”.
  • skip_blanks (bool,default False) – Set to True to skip over blank cells
  • transpose (bool,default False) – Set to True to transpose rows and columns.
Returns:

raw_value ¶

Gets and sets the values directly as delivered from/accepted by the engine that is being used ( pywin32 or appscript ) without going through any of xlwings’ data cleaning/converting. This can be helpful if speed is an issue but naturally will be engine specific, i.e. might remove the cross-platform compatibility.

resize ( row_size=None, column_size=None ) ¶

Resizes the specified Range

Range object

New in version 0.3.0.

Returns the number of the first row in the specified range. Read-only.

Parameters:
  • row_size (int > 0) – The number of rows in the new range (if None, the number of rows in the range is unchanged).
  • column_size (int > 0) – The number of columns in the new range (if None, the number of columns in the range is unchanged).
Returns:
Returns:
Return type: Integer

New in version 0.3.5.

Gets or sets the height, in points, of a Range. If all rows in the Range have the same height, returns the height. If rows in the Range have different heights, returns None.

row_height must be in the range: 0

Returns:
Return type: float

New in version 0.4.0.

Returns a RangeRows object that represents the rows in the specified range.

New in version 0.9.0.

Selects the range. Select only works on the active book.

New in version 0.9.0.

Tuple of Range dimensions.

New in version 0.3.0.

Returns the Sheet object to which the Range belongs.

New in version 0.9.0.

Number of elements in the Range.

New in version 0.3.0.

Returns a Table object if the range is part of one, otherwise None .

New in version 0.21.0.

Exports the range as PNG picture.

Parameters:
  • path (strorpath-like,default None) – Path where you want to store the picture. Defaults to the name of the range in the same directory as the Excel file if the Excel file is stored and to the current working directory otherwise.
  • versionadded: (.) – 0.24.8:

top ¶

Returns the distance, in points, from the top edge of row 1 to the top edge of the range. Read-only.

Returns:
Return type: float

New in version 0.6.0.

Separates a merged area into individual cells.

Gets and sets the values for the given Range. See see xlwings.Range.options() about how to set options, e.g. to transform it into a DataFrame or how to set a chunksize.

Returns: object
Return type: returned object depends on the converter being used, see xlwings.Range.options()

width ¶

Returns the width, in points, of a Range. Read-only.

Returns:
Return type: float

New in version 0.4.0.

Returns True if the wrap_text property is enabled and False if it’s disabled. If not all cells have the same value in a range, on Windows it returns None and on macOS False .

New in version 0.23.2.

RangeRows¶

Represents the rows of a range. Do not construct this class directly, use Range.rows instead.

Autofits the height of the rows.

Returns the number of rows.

New in version 0.9.0.

RangeColumns¶

Represents the columns of a range. Do not construct this class directly, use Range.columns instead.

Autofits the width of the columns.

Returns the number of columns.

New in version 0.9.0.

Shapes¶

A collection of all shape objects on the specified sheet:

New in version 0.9.0.

Returns the native object ( pywin32 or appscript obj) of the engine being used.

Returns the number of objects in the collection.

Shape¶

The shape object is a member of the shapes collection:

Changed in version 0.9.0.

Activates the shape.

New in version 0.5.0.

Returns the native object ( pywin32 or appscript obj) of the engine being used.

New in version 0.19.2.

Deletes the shape.

New in version 0.5.0.

Returns or sets the number of points that represent the height of the shape.

New in version 0.5.0.

Returns or sets the number of points that represent the horizontal position of the shape.

New in version 0.5.0.

Returns or sets the name of the shape.

New in version 0.5.0.

Returns the parent of the shape.

New in version 0.9.0.

New in version 0.19.2.

New in version 0.19.2.

Returns or sets the text of a shape.

New in version 0.21.4.

Returns or sets the number of points that represent the vertical position of the shape.

New in version 0.5.0.

Returns the type of the shape.

New in version 0.9.0.

Returns or sets the number of points that represent the width of the shape.

New in version 0.5.0.

Charts¶

A collection of all chart objects on the specified sheet:

New in version 0.9.0.

Creates a new chart on the specified sheet.

Returns the native object ( pywin32 or appscript obj) of the engine being used.

Returns the number of objects in the collection.

Chart¶

The chart object is a member of the charts collection:

Returns the native object ( pywin32 or appscript obj) of the engine being used.

New in version 0.9.0.

Returns and sets the chart type of the chart. The following chart types are available:

3d_area , 3d_area_stacked , 3d_area_stacked_100 , 3d_bar_clustered , 3d_bar_stacked , 3d_bar_stacked_100 , 3d_column , 3d_column_clustered , 3d_column_stacked , 3d_column_stacked_100 , 3d_line , 3d_pie , 3d_pie_exploded , area , area_stacked , area_stacked_100 , bar_clustered , bar_of_pie , bar_stacked , bar_stacked_100 , bubble , bubble_3d_effect , column_clustered , column_stacked , column_stacked_100 , combination , cone_bar_clustered , cone_bar_stacked , cone_bar_stacked_100 , cone_col , cone_col_clustered , cone_col_stacked , cone_col_stacked_100 , cylinder_bar_clustered , cylinder_bar_stacked , cylinder_bar_stacked_100 , cylinder_col , cylinder_col_clustered , cylinder_col_stacked , cylinder_col_stacked_100 , doughnut , doughnut_exploded , line , line_markers , line_markers_stacked , line_markers_stacked_100 , line_stacked , line_stacked_100 , pie , pie_exploded , pie_of_pie , pyramid_bar_clustered , pyramid_bar_stacked , pyramid_bar_stacked_100 , pyramid_col , pyramid_col_clustered , pyramid_col_stacked , pyramid_col_stacked_100 , radar , radar_filled , radar_markers , stock_hlc , stock_ohlc , stock_vhlc , stock_vohlc , surface , surface_top_view , surface_top_view_wireframe , surface_wireframe , xy_scatter , xy_scatter_lines , xy_scatter_lines_no_markers , xy_scatter_smooth , xy_scatter_smooth_no_markers

New in version 0.1.1.

Deletes the chart.

Returns or sets the number of points that represent the height of the chart.

Returns or sets the number of points that represent the horizontal position of the chart.

Returns or sets the name of the chart.

Returns the parent of the chart.

New in version 0.9.0.

Sets the source data range for the chart.

Parameters:
  • left (float,default 0) – left position in points
  • top (float,default 0) – top position in points
  • width (float,default 355) – width in points
  • height (float,default 211) – height in points
Returns:
Parameters: source (Range) – Range object, e.g. xw.books[‘Book1’].sheets[0].range(‘A1’)

to_png ( path=None ) ¶

Exports the chart as PNG picture.

Parameters:
  • path (strorpath-like,default None) – Path where you want to store the picture. Defaults to the name of the chart in the same directory as the Excel file if the Excel file is stored and to the current working directory otherwise.
  • versionadded: (.) – 0.24.8:

top ¶

Returns or sets the number of points that represent the vertical position of the chart.

Returns or sets the number of points that represent the width of the chart.

Pictures¶

A collection of all picture objects on the specified sheet:

New in version 0.9.0.

Adds a picture to the specified sheet.

Parameters:
  • image (strorpath-like objectormatplotlib.figure.Figure) – Either a filepath or a Matplotlib figure object.
  • left (float,default None) – Left position in points, defaults to 0. If you use top / left , you must not provide a value for anchor .
  • top (float,default None) – Top position in points, defaults to 0. If you use top / left , you must not provide a value for anchor .
  • width (float,default None) – Width in points. Defaults to original width.
  • height (float,default None) – Height in points. Defaults to original height.
  • name (str,default None) – Excel picture name. Defaults to Excel standard name if not provided, e.g. ‘Picture 1’.
  • update (bool,default False) – Replace an existing picture with the same name. Requires name to be set.
  • scale (float,default None) – Scales your picture by the provided factor.
  • format (str,default None) – Only used if image is a Matplotlib or Plotly plot. By default, the plot is inserted in the “png” format, but you may want to change this to a vector-based format like “svg” on Windows (may require Microsoft 365) or “eps” on macOS for better print quality. If you use ‘vector’ , it will be using ‘svg’ on Windows and ‘eps’ on macOS. To find out which formats your version of Excel supports, see: https://support.microsoft.com/en-us/topic/support-for-eps-images-has-been-turned-off-in-office-a069d664-4bcf-415e-a1b5-cbb0c334a840
  • anchor (xw.Range,default None) –

The xlwings Range object of where you want to insert the picture. If you use anchor , you must not provide values for top / left .

Источник

Читайте также:  Как настроить биос uefi на ноутбуке

Adblock
detector

I need to open and close the same workbook in a python for loop without necessarily saving the workbook. I tried the following in xlwings:

import xlwings as xw

for i in range(5):
    print(i)
    book = xw.Book()
    book.app.quit()

However this will only run for the first iteration. At the second iteration I get an error:

Traceback (most recent call last):
  File "D:/TEMP/SE/python/ref.py", line 5, in <module>
    book = xw.Book('tree_template.xlsx')
  File "C:UsersaboufiraAppDataLocalContinuumminiconda3envsSElibsite-packagesxlwingsmain.py", line 533, in __init__
    for wb in app.books:
  File "C:UsersaboufiraAppDataLocalContinuumminiconda3envsSElibsite-packagesxlwingsmain.py", line 374, in books
    return Books(impl=self.impl.books)
  File "C:UsersaboufiraAppDataLocalContinuumminiconda3envsSElibsite-packagesxlwings_xlwindows.py", line 397, in books
    return Books(xl=self.xl.Workbooks)
  File "C:UsersaboufiraAppDataLocalContinuumminiconda3envsSElibsite-packagesxlwings_xlwindows.py", line 313, in xl
    self._xl = get_xl_app_from_hwnd(self._hwnd)
  File "C:UsersaboufiraAppDataLocalContinuumminiconda3envsSElibsite-packagesxlwings_xlwindows.py", line 222, in get_xl_app_from_hwnd
    ptr = accessible_object_from_window(child_hwnd)
  File "C:UsersaboufiraAppDataLocalContinuumminiconda3envsSElibsite-packagesxlwings_xlwindows.py", line 190, in accessible_object_from_window
    res = oledll.oleacc.AccessibleObjectFromWindow(
  File "_ctypes/callproc.c", line 948, in GetResult
OSError: [WinError -2147467259] Unspecified error

Why does this occur? How can I get xlwings to exit out of the application without causing any problems?

0 / 0 / 1

Регистрация: 28.12.2016

Сообщений: 56

1

03.05.2018, 12:29. Показов 4945. Ответов 12


Студворк — интернет-сервис помощи студентам

Здравствуйте! Работаю с файлом Excel: записываю информацию на разные листы. Затем сохраняю файл с помощью функции save() и закрываю с помощью функции close(). Файл сохраняется и закрывается, но остается открытым само приложение Excel…
Может кто-нибудь знает как его закрыть?
Для записи данных в Excel использую библиотеку xlwings.



0



1289 / 906 / 479

Регистрация: 05.12.2013

Сообщений: 3,061

03.05.2018, 12:46

2

Цитата
Сообщение от daria13
Посмотреть сообщение

но остается открытым само приложение Excel

Не удается добиться такого поведения, Excel закрывается, приведите минимальный код который не закрывает Excel



0



Эксперт Python

4607 / 2028 / 359

Регистрация: 17.03.2012

Сообщений: 10,085

Записей в блоге: 6

03.05.2018, 16:20

3

xl.quit()?



0



daria13

0 / 0 / 1

Регистрация: 28.12.2016

Сообщений: 56

12.05.2018, 19:58

 [ТС]

4

Цитата
Сообщение от ТабуретY
Посмотреть сообщение

минимальный код который не закрывает Excel

Код:

Python
1
2
3
4
5
import xlwings as xw
wb = xw.Book('File.xlsx')
#открываю некоторые листы и записываю в них информацию из списков
wb.save()
wb.close()

Закрывает файл, но остается то, что на приложенной картинке. Может быть есть способ открывать файл Excel вообще в фоновом режиме?

Цитата
Сообщение от dondublon
Посмотреть сообщение

xl.quit()

он ее не понимает с такой библиотекой.

Миниатюры

Работа с Excel
 



0



Эксперт Python

4607 / 2028 / 359

Регистрация: 17.03.2012

Сообщений: 10,085

Записей в блоге: 6

14.05.2018, 11:05

5

daria13, а вы точно вызываете quit у объекта-приложения, а не книги?



0



Garry Galler

Эксперт Python

5406 / 3830 / 1214

Регистрация: 28.10.2013

Сообщений: 9,554

Записей в блоге: 1

14.05.2018, 14:04

6

На винде нужно либо делать app.kill(), либо удалять объект приложения после quit():

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
import time,os
import xlwings as xw
 
app = xw.App(visible=False) # режим без видимого GUI
PID = app.pid
print(os.system('tasklist /FI "PID eq %d"' % PID)) # для теста смотрим наличие процесса 
time.sleep(3)
#app.kill()  # просто убиваем процесс средствами ос
app.quit()   # или все таки культурно предлагаем процессу закруглиться и затем удаляем ссылку на объект
del app  # если не удалить ссылку на объект - процесс будет висеть до выхода из скрипта
print('quit excel')
print(os.system('tasklist /FI "PID eq %d"' % PID)) # процесс должен исчезнуть
time.sleep(30)

Добавлено через 47 минут
P.S. Почему-то с открытой книгой (которой мы потом сделали close) вариант с

Python
1
2
app.quit()
del app

не работает.
Только app.kill()



0



Эксперт Python

4607 / 2028 / 359

Регистрация: 17.03.2012

Сообщений: 10,085

Записей в блоге: 6

14.05.2018, 14:21

7

Цитата
Сообщение от Garry Galler
Посмотреть сообщение

app.quit()
del app
не работает.

Я как-то сто лет назад с подобным сталкивался.
При close он воспроизводит поведение обычного екселя, а именно — выдаёт гуишное окошко «сохранить — не сохранять — отмена» и так с ним и висит. В этом состоянии таки да, только kill

Добавлено через 2 минуты
Да, кстати, с quit-ом та же петрушка.



0



daria13

0 / 0 / 1

Регистрация: 28.12.2016

Сообщений: 56

24.05.2018, 11:50

 [ТС]

8

Цитата
Сообщение от Garry Galler
Посмотреть сообщение

app = xw.App(visible=False) # режим без видимого GUI

У меня вообще ничего не получилось… Ни с невидимостью, ни с kill().Я так поняла, это потому что я вызываю книгу… Он говорит что для Book() он не знает App()

Python
1
wb = xw.Book('Название файла.xlsx')



0



Эксперт Python

4607 / 2028 / 359

Регистрация: 17.03.2012

Сообщений: 10,085

Записей в блоге: 6

24.05.2018, 13:27

9

чего-чего он говорит?



0



0 / 0 / 1

Регистрация: 28.12.2016

Сообщений: 56

24.05.2018, 13:33

 [ТС]

10

Цитата
Сообщение от dondublon
Посмотреть сообщение

чего-чего он говорит?

Забыла прикрепить ошибку
AttributeError: ‘Book’ object has no attribute ‘App’



0



Эксперт Python

4607 / 2028 / 359

Регистрация: 17.03.2012

Сообщений: 10,085

Записей в блоге: 6

24.05.2018, 14:05

11

Но я не вижу, чтобы атрибут App где-то запрашивался.



0



Garry Galler

Эксперт Python

5406 / 3830 / 1214

Регистрация: 28.10.2013

Сообщений: 9,554

Записей в блоге: 1

24.05.2018, 14:09

12

Лучший ответ Сообщение было отмечено daria13 как решение

Решение

daria13,
А документацию прочитать?
Естественно, такого атрибута у книги нет. Но никто и не говорил, что все эти методы нужны применять к Book.
Впрочем, у каждого экземпляра Book есть атрибут book.app — то есть доступ к уже запущенному экземпляру приложения. И к нему также можно применять все методы класса App.
Но при использовании такого способа доступа

Python
1
2
3
book = xw.Book("1.xlsx")
app = book.app
app.visible = False

у вас приложение сначала запустится в видимом режиме и только через 1-2 секунды станет невидимым.
А если напрямую создавать экземпляр приложения и обращаться к нему — тогда Excel будет сразу запущен в невидимом режиме.



1



0 / 0 / 1

Регистрация: 28.12.2016

Сообщений: 56

30.05.2018, 10:13

 [ТС]

13

Цитата
Сообщение от Garry Galler
Посмотреть сообщение

Естественно, такого атрибута у книги нет

Спасибо большое)
Буду стараться читать внимательнее



0



Like this post? Please share to your friends:
  • Xltools календарь для excel
  • Xltools для microsoft excel
  • Xltools для excel скачать бесплатно торрент
  • Xltools для excel скачать бесплатно полную
  • Xltools для excel скачать бесплатно для windows