Chạy excel từ python

Nếu bạn chỉ quan tâm đến việc đưa DataFrame vào và ra khỏi sổ ghi chép Jupyter của mình, bạn có thể sử dụng các hàm

>>> xw.apps[10559].books['FileName.xlsx']
1 và
>>> xw.apps[10559].books['FileName.xlsx']
2, xem

2. viết kịch bản. Tự động hóa/tương tác với Excel từ Python

Thiết lập kết nối đến sổ làm việc

>>> import xlwings as xw
>>> wb = xw.Book[]  # this will open a new workbook
>>> wb = xw.Book['FileName.xlsx']  # connect to a file that is open or in the current working directory
>>> wb = xw.Book[r'C:\path\to\file.xlsx']  # on Windows: use raw strings to escape backslashes

Nếu bạn mở cùng một tệp trong hai phiên bản Excel, thì bạn cần đủ điều kiện cho tệp đó và bao gồm phiên bản ứng dụng. Bạn sẽ tìm thấy khóa phiên bản ứng dụng của mình [PID] qua

>>> xw.apps[10559].books['FileName.xlsx']
3

>>> xw.apps[10559].books['FileName.xlsx']

Khởi tạo một đối tượng trang tính

>>> sheet = wb.sheets['Sheet1']

Đọc/ghi giá trị vào/từ phạm vi dễ dàng như

>>> sheet['A1'].value = 'Foo 1'
>>> sheet['A1'].value
'Foo 1'

Có rất nhiều tính năng tiện lợi có sẵn, đ. g. Mở rộng phạm vi

>>> sheet['A1'].value = [['Foo 1', 'Foo 2', 'Foo 3'], [10.0, 20.0, 30.0]]
>>> sheet['A1'].expand[].value
[['Foo 1', 'Foo 2', 'Foo 3'], [10.0, 20.0, 30.0]]

Bộ chuyển đổi mạnh mẽ xử lý hầu hết các loại dữ liệu quan tâm, bao gồm mảng Numpy và Khung dữ liệu Pandas theo cả hai hướng

________số 8

Số liệu Matplotlib có thể được hiển thị dưới dạng hình ảnh trong Excel

>>> import matplotlib.pyplot as plt
>>> fig = plt.figure[]
>>> plt.plot[[1, 2, 3, 4, 5]]
[]
>>> sheet.pictures.add[fig, name='MyPlot', update=True]

3. macro. Gọi Python từ Excel

Bạn có thể gọi các hàm Python bằng cách nhấp vào nút

>>> xw.apps[10559].books['FileName.xlsx']
4 [mới trong v0. 16] trong phần bổ trợ hoặc từ VBA bằng hàm
>>> xw.apps[10559].books['FileName.xlsx']
5

Nút

>>> xw.apps[10559].books['FileName.xlsx']
4 mong đợi một hàm có tên là
>>> xw.apps[10559].books['FileName.xlsx']
7 trong mô-đun Python có cùng tên với sổ làm việc của bạn. Điều tuyệt vời về cách tiếp cận đó là bạn không cần kích hoạt macro sổ làm việc của mình, bạn có thể lưu nó dưới dạng
>>> xw.apps[10559].books['FileName.xlsx']
8

Nếu bạn muốn gọi bất kỳ hàm Python nào, bất kể nó nằm trong mô-đun nào hoặc tên của nó là gì, hãy sử dụng

>>> xw.apps[10559].books['FileName.xlsx']
5

>>> xw.apps[10559].books['FileName.xlsx']
6

Ghi chú

Theo mặc định,

>>> xw.apps[10559].books['FileName.xlsx']
5 mong đợi
>>> sheet = wb.sheets['Sheet1']
1 trong cùng thư mục với tệp Excel có cùng tên, nhưng bạn có thể thay đổi cả hai điều này. nếu tệp Python của bạn là một thư mục khác, hãy thêm thư mục đó vào
>>> sheet = wb.sheets['Sheet1']
2 trong cấu hình. Nếu tệp có tên khác, hãy thay đổi lệnh
>>> xw.apps[10559].books['FileName.xlsx']
5 cho phù hợp

Tham khảo sổ gọi Excel bằng cách sử dụng

>>> sheet = wb.sheets['Sheet1']
4

>>> import xlwings as xw
>>> wb = xw.Book[]  # this will open a new workbook
>>> wb = xw.Book['FileName.xlsx']  # connect to a file that is open or in the current working directory
>>> wb = xw.Book[r'C:\path\to\file.xlsx']  # on Windows: use raw strings to escape backslashes
2

Để thực hiện điều này, bạn cần cài đặt phần bổ trợ xlwings hoặc thiết lập sổ làm việc ở chế độ độc lập. Cách dễ nhất để thiết lập mọi thứ là sử dụng ứng dụng khách dòng lệnh xlwings từ dấu nhắc lệnh trên Windows hoặc thiết bị đầu cuối trên máy Mac.

>>> sheet = wb.sheets['Sheet1']
5

Để biết chi tiết về addin, xem

4. UDF. Hàm do người dùng xác định [chỉ dành cho Windows]

Viết một UDF bằng Python dễ dàng như

>>> import xlwings as xw
>>> wb = xw.Book[]  # this will open a new workbook
>>> wb = xw.Book['FileName.xlsx']  # connect to a file that is open or in the current working directory
>>> wb = xw.Book[r'C:\path\to\file.xlsx']  # on Windows: use raw strings to escape backslashes
4

Bộ chuyển đổi cũng có thể được sử dụng với UDF. Một lần nữa một ví dụ về Khung dữ liệu Pandas

>>> xw.apps[10559].books['FileName.xlsx']
0

Nhập chức năng này vào Excel bằng cách nhấp vào nút nhập của bổ trợ xlwings. để biết hướng dẫn từng bước, hãy xem

Chủ Đề