Hướng dẫn python win32com excel insert column - Python win32com chèn cột excel

Vì vậy, bạn muốn chèn một số ô vào SS trong Excel bằng Python. & NBSP; Dễ như ăn bánh!

Bước 1) Yêu cầu

Để làm điều này, bạn phải cài đặt mô -đun Win32 của Python. & NBSP; Bạn có thể chọn mô -đun này ở đây: http: //python.net/crew/skippy/win32/doad.html
http://python.net/crew/skippy/win32/Downloads.html

Bạn cũng phải xây dựng các hằng số Win32 cho Excel. & NBSP; Hướng dẫn về cách thực hiện điều này có thể được tìm thấy ở đây: Xây dựng hằng số Win32com
Building win32com Constants

Bước 2) Xây dựng tập lệnh với một đối tượng Excel

Bây giờ kết hợp một tập lệnh với một đối tượng Excel trong đó, tạo ra một đối tượng sổ làm việc và sau đó từ đối tượng sổ làm việc tạo ra một đối tượng bảng tính. & NBSP; Sau đó, từ đối tượng bảng tính tạo đối tượng phạm vi của bạn. Thí dụ:

# import the win32 moduleimport win32com.client
import win32com.client

# create an xl objectxl = win32com.client.Dispatch("Excel.Application")# create a workbook object

# Write data in expenses form
expform_wb = xl.Workbooks.Open(expform_path, Editable=True)
expform_ws = expform_wb.Worksheets('Expense Form')
last_row_ef = expense_items + 15

expform_ws.Range("Total").Offset(-1, 0).EntireRow.Insert
expform_ws.Range('Casecode').Value = case_code
expform_ws.Range('D6').Value = name
expform_ws.Range('D7').Value = last_name
expform_ws.Range('D8').Value = datetime.date.today().strftime("%d/%m/%Y")
expform_ws.Range('B16:B' + str(last_row_ef)).Value = date
expform_ws.Range('D16:D' + str(last_row_ef)).Value = descr
0
# Write data in expenses form
expform_wb = xl.Workbooks.Open(expform_path, Editable=True)
expform_ws = expform_wb.Worksheets('Expense Form')
last_row_ef = expense_items + 15

expform_ws.Range("Total").Offset(-1, 0).EntireRow.Insert
expform_ws.Range('Casecode').Value = case_code
expform_ws.Range('D6').Value = name
expform_ws.Range('D7').Value = last_name
expform_ws.Range('D8').Value = datetime.date.today().strftime("%d/%m/%Y")
expform_ws.Range('B16:B' + str(last_row_ef)).Value = date
expform_ws.Range('D16:D' + str(last_row_ef)).Value = descr
1
# Write data in expenses form
expform_wb = xl.Workbooks.Open(expform_path, Editable=True)
expform_ws = expform_wb.Worksheets('Expense Form')
last_row_ef = expense_items + 15

expform_ws.Range("Total").Offset(-1, 0).EntireRow.Insert
expform_ws.Range('Casecode').Value = case_code
expform_ws.Range('D6').Value = name
expform_ws.Range('D7').Value = last_name
expform_ws.Range('D8').Value = datetime.date.today().strftime("%d/%m/%Y")
expform_ws.Range('B16:B' + str(last_row_ef)).Value = date
expform_ws.Range('D16:D' + str(last_row_ef)).Value = descr
2
# Write data in expenses form
expform_wb = xl.Workbooks.Open(expform_path, Editable=True)
expform_ws = expform_wb.Worksheets('Expense Form')
last_row_ef = expense_items + 15

expform_ws.Range("Total").Offset(-1, 0).EntireRow.Insert
expform_ws.Range('Casecode').Value = case_code
expform_ws.Range('D6').Value = name
expform_ws.Range('D7').Value = last_name
expform_ws.Range('D8').Value = datetime.date.today().strftime("%d/%m/%Y")
expform_ws.Range('B16:B' + str(last_row_ef)).Value = date
expform_ws.Range('D16:D' + str(last_row_ef)).Value = descr
3
# Write data in expenses form
expform_wb = xl.Workbooks.Open(expform_path, Editable=True)
expform_ws = expform_wb.Worksheets('Expense Form')
last_row_ef = expense_items + 15

expform_ws.Range("Total").Offset(-1, 0).EntireRow.Insert
expform_ws.Range('Casecode').Value = case_code
expform_ws.Range('D6').Value = name
expform_ws.Range('D7').Value = last_name
expform_ws.Range('D8').Value = datetime.date.today().strftime("%d/%m/%Y")
expform_ws.Range('B16:B' + str(last_row_ef)).Value = date
expform_ws.Range('D16:D' + str(last_row_ef)).Value = descr
4
xl = win32com.client.Dispatch("Excel.Application")
# create a workbook object
# Write data in expenses form
expform_wb = xl.Workbooks.Open(expform_path, Editable=True)
expform_ws = expform_wb.Worksheets('Expense Form')
last_row_ef = expense_items + 15

expform_ws.Range("Total").Offset(-1, 0).EntireRow.Insert
expform_ws.Range('Casecode').Value = case_code
expform_ws.Range('D6').Value = name
expform_ws.Range('D7').Value = last_name
expform_ws.Range('D8').Value = datetime.date.today().strftime("%d/%m/%Y")
expform_ws.Range('B16:B' + str(last_row_ef)).Value = date
expform_ws.Range('D16:D' + str(last_row_ef)).Value = descr
0
# Write data in expenses form
expform_wb = xl.Workbooks.Open(expform_path, Editable=True)
expform_ws = expform_wb.Worksheets('Expense Form')
last_row_ef = expense_items + 15

expform_ws.Range("Total").Offset(-1, 0).EntireRow.Insert
expform_ws.Range('Casecode').Value = case_code
expform_ws.Range('D6').Value = name
expform_ws.Range('D7').Value = last_name
expform_ws.Range('D8').Value = datetime.date.today().strftime("%d/%m/%Y")
expform_ws.Range('B16:B' + str(last_row_ef)).Value = date
expform_ws.Range('D16:D' + str(last_row_ef)).Value = descr
1
# Write data in expenses form
expform_wb = xl.Workbooks.Open(expform_path, Editable=True)
expform_ws = expform_wb.Worksheets('Expense Form')
last_row_ef = expense_items + 15

expform_ws.Range("Total").Offset(-1, 0).EntireRow.Insert
expform_ws.Range('Casecode').Value = case_code
expform_ws.Range('D6').Value = name
expform_ws.Range('D7').Value = last_name
expform_ws.Range('D8').Value = datetime.date.today().strftime("%d/%m/%Y")
expform_ws.Range('B16:B' + str(last_row_ef)).Value = date
expform_ws.Range('D16:D' + str(last_row_ef)).Value = descr
2
# Write data in expenses form
expform_wb = xl.Workbooks.Open(expform_path, Editable=True)
expform_ws = expform_wb.Worksheets('Expense Form')
last_row_ef = expense_items + 15

expform_ws.Range("Total").Offset(-1, 0).EntireRow.Insert
expform_ws.Range('Casecode').Value = case_code
expform_ws.Range('D6').Value = name
expform_ws.Range('D7').Value = last_name
expform_ws.Range('D8').Value = datetime.date.today().strftime("%d/%m/%Y")
expform_ws.Range('B16:B' + str(last_row_ef)).Value = date
expform_ws.Range('D16:D' + str(last_row_ef)).Value = descr
3
# Write data in expenses form
expform_wb = xl.Workbooks.Open(expform_path, Editable=True)
expform_ws = expform_wb.Worksheets('Expense Form')
last_row_ef = expense_items + 15

expform_ws.Range("Total").Offset(-1, 0).EntireRow.Insert
expform_ws.Range('Casecode').Value = case_code
expform_ws.Range('D6').Value = name
expform_ws.Range('D7').Value = last_name
expform_ws.Range('D8').Value = datetime.date.today().strftime("%d/%m/%Y")
expform_ws.Range('B16:B' + str(last_row_ef)).Value = date
expform_ws.Range('D16:D' + str(last_row_ef)).Value = descr
4

Bước 3) Bây giờ tạo hai đối tượng phạm vi.

Thêm các dòng sau vào tập lệnh của bạn. & NBSP; Các dòng được ghi nhận về những gì họ sẽ làm.

# Write data in expenses form
expform_wb = xl.Workbooks.Open(expform_path, Editable=True)
expform_ws = expform_wb.Worksheets('Expense Form')
last_row_ef = expense_items + 15

expform_ws.Range("Total").Offset(-1, 0).EntireRow.Insert
expform_ws.Range('Casecode').Value = case_code
expform_ws.Range('D6').Value = name
expform_ws.Range('D7').Value = last_name
expform_ws.Range('D8').Value = datetime.date.today().strftime("%d/%m/%Y")
expform_ws.Range('B16:B' + str(last_row_ef)).Value = date
expform_ws.Range('D16:D' + str(last_row_ef)).Value = descr
5
# Write data in expenses form
expform_wb = xl.Workbooks.Open(expform_path, Editable=True)
expform_ws = expform_wb.Worksheets('Expense Form')
last_row_ef = expense_items + 15

expform_ws.Range("Total").Offset(-1, 0).EntireRow.Insert
expform_ws.Range('Casecode').Value = case_code
expform_ws.Range('D6').Value = name
expform_ws.Range('D7').Value = last_name
expform_ws.Range('D8').Value = datetime.date.today().strftime("%d/%m/%Y")
expform_ws.Range('B16:B' + str(last_row_ef)).Value = date
expform_ws.Range('D16:D' + str(last_row_ef)).Value = descr
6
# Write data in expenses form
expform_wb = xl.Workbooks.Open(expform_path, Editable=True)
expform_ws = expform_wb.Worksheets('Expense Form')
last_row_ef = expense_items + 15

expform_ws.Range("Total").Offset(-1, 0).EntireRow.Insert
expform_ws.Range('Casecode').Value = case_code
expform_ws.Range('D6').Value = name
expform_ws.Range('D7').Value = last_name
expform_ws.Range('D8').Value = datetime.date.today().strftime("%d/%m/%Y")
expform_ws.Range('B16:B' + str(last_row_ef)).Value = date
expform_ws.Range('D16:D' + str(last_row_ef)).Value = descr
7
# Write data in expenses form
expform_wb = xl.Workbooks.Open(expform_path, Editable=True)
expform_ws = expform_wb.Worksheets('Expense Form')
last_row_ef = expense_items + 15

expform_ws.Range("Total").Offset(-1, 0).EntireRow.Insert
expform_ws.Range('Casecode').Value = case_code
expform_ws.Range('D6').Value = name
expform_ws.Range('D7').Value = last_name
expform_ws.Range('D8').Value = datetime.date.today().strftime("%d/%m/%Y")
expform_ws.Range('B16:B' + str(last_row_ef)).Value = date
expform_ws.Range('D16:D' + str(last_row_ef)).Value = descr
8
# Write data in expenses form
expform_wb = xl.Workbooks.Open(expform_path, Editable=True)
expform_ws = expform_wb.Worksheets('Expense Form')
last_row_ef = expense_items + 15

expform_ws.Range("Total").Offset(-1, 0).EntireRow.Insert
expform_ws.Range('Casecode').Value = case_code
expform_ws.Range('D6').Value = name
expform_ws.Range('D7').Value = last_name
expform_ws.Range('D8').Value = datetime.date.today().strftime("%d/%m/%Y")
expform_ws.Range('B16:B' + str(last_row_ef)).Value = date
expform_ws.Range('D16:D' + str(last_row_ef)).Value = descr
9
expform_ws.Range("Total").Offset(-1, 0).EntireRow.Insert
0
expform_ws.Range("Total").Offset(-1, 0).EntireRow.Insert
1
expform_ws.Range("Total").Offset(-1, 0).EntireRow.Insert
2
# Write data in expenses form
expform_wb = xl.Workbooks.Open(expform_path, Editable=True)
expform_ws = expform_wb.Worksheets('Expense Form')
last_row_ef = expense_items + 15

expform_ws.Range("Total").Offset(-1, 0).EntireRow.Insert
expform_ws.Range('Casecode').Value = case_code
expform_ws.Range('D6').Value = name
expform_ws.Range('D7').Value = last_name
expform_ws.Range('D8').Value = datetime.date.today().strftime("%d/%m/%Y")
expform_ws.Range('B16:B' + str(last_row_ef)).Value = date
expform_ws.Range('D16:D' + str(last_row_ef)).Value = descr
6
# Write data in expenses form
expform_wb = xl.Workbooks.Open(expform_path, Editable=True)
expform_ws = expform_wb.Worksheets('Expense Form')
last_row_ef = expense_items + 15

expform_ws.Range("Total").Offset(-1, 0).EntireRow.Insert
expform_ws.Range('Casecode').Value = case_code
expform_ws.Range('D6').Value = name
expform_ws.Range('D7').Value = last_name
expform_ws.Range('D8').Value = datetime.date.today().strftime("%d/%m/%Y")
expform_ws.Range('B16:B' + str(last_row_ef)).Value = date
expform_ws.Range('D16:D' + str(last_row_ef)).Value = descr
7
# Write data in expenses form
expform_wb = xl.Workbooks.Open(expform_path, Editable=True)
expform_ws = expform_wb.Worksheets('Expense Form')
last_row_ef = expense_items + 15

expform_ws.Range("Total").Offset(-1, 0).EntireRow.Insert
expform_ws.Range('Casecode').Value = case_code
expform_ws.Range('D6').Value = name
expform_ws.Range('D7').Value = last_name
expform_ws.Range('D8').Value = datetime.date.today().strftime("%d/%m/%Y")
expform_ws.Range('B16:B' + str(last_row_ef)).Value = date
expform_ws.Range('D16:D' + str(last_row_ef)).Value = descr
8
# Write data in expenses form
expform_wb = xl.Workbooks.Open(expform_path, Editable=True)
expform_ws = expform_wb.Worksheets('Expense Form')
last_row_ef = expense_items + 15

expform_ws.Range("Total").Offset(-1, 0).EntireRow.Insert
expform_ws.Range('Casecode').Value = case_code
expform_ws.Range('D6').Value = name
expform_ws.Range('D7').Value = last_name
expform_ws.Range('D8').Value = datetime.date.today().strftime("%d/%m/%Y")
expform_ws.Range('B16:B' + str(last_row_ef)).Value = date
expform_ws.Range('D16:D' + str(last_row_ef)).Value = descr
9
expform_ws.Range("Total").Offset(-1, 0).EntireRow.Insert
0
expform_ws.Range("Total").Offset(-1, 0).EntireRow.Insert
1
expform_ws.Range("Total").Offset(-1, 0).EntireRow.Insert
2

Bước 4) Bây giờ tạo hai đối tượng phạm vi.

Sẵn sàng cho nó? & NBSP; Bây giờ chúng tôi sẽ thực hiện chèn. & Nbsp; Giữ số lượng hơi thở của bạn vào ba và chèn dòng:

expform_ws.Range("Total").Offset(-1, 0).EntireRow.Insert
3

Chèn đang hoạt động trên cột được xác định bởi đối tượng phạm vi. & NBSP; Vì vậy, trong trường hợp này, đối tượng phạm vi mà chúng tôi gọi là chèn là cột B. & NBSP; Do đó, cột mới sẽ được chèn vào giữa các cột A và B. & NBSP; Có một thuộc tính gọi là xlshiftToright được cho là ảnh hưởng đến cách thay đổi xảy ra. & Nbsp; Tôi đã không thể làm cho nó hoạt động chính xác vì vậy tôi chỉ để lại mọi thứ như hiện tại. & NBSP; Nếu bạn muốn thử nghiệm thuộc tính này, bạn sẽ thêm nó như một đối số vào phương thức chèn ().xlShiftToRight which is suppose to influence which way the shifting happens.  I was unable to get it to work correctly so I just left things as is.  If you wish to experiment with this property you would add it as an argument to the Insert() method.

Example:

expform_ws.Range("Total").Offset(-1, 0).EntireRow.Insert
4
expform_ws.Range("Total").Offset(-1, 0).EntireRow.Insert
5
expform_ws.Range("Total").Offset(-1, 0).EntireRow.Insert
5

Để chèn một hàng thay vì một cột, chỉ cần đặt phạm vi của bạn để chọn một hàng dữ liệu và sử dụng thuộc tính của các đối tượng phạm vi thay vì thuộc tính EntireColumn. & NBSP; Thí dụ:

expform_ws.Range("Total").Offset(-1, 0).EntireRow.Insert
6
expform_ws.Range("Total").Offset(-1, 0).EntireRow.Insert
7
expform_ws.Range("Total").Offset(-1, 0).EntireRow.Insert
7

Nếu điều này không hoạt động chính xác, bạn có thể thử nghiệm thuộc tính xlinsertshiftDirection để thực thi hướng bạn muốn thay đổi diễn ra. & NBSP; Một lần nữa tôi không thể có được mọi thứ để hành xử khác nhau bằng cách sử dụng đối số này.

Tôi có một câu hỏi rất cụ thể. Dòng:

expform_ws.Range("Total").Offset(-1, 0).EntireRow.Insert

Trong mã dưới đây không hoạt động:

# Write data in expenses form
expform_wb = xl.Workbooks.Open(expform_path, Editable=True)
expform_ws = expform_wb.Worksheets('Expense Form')
last_row_ef = expense_items + 15

expform_ws.Range("Total").Offset(-1, 0).EntireRow.Insert
expform_ws.Range('Casecode').Value = case_code
expform_ws.Range('D6').Value = name
expform_ws.Range('D7').Value = last_name
expform_ws.Range('D8').Value = datetime.date.today().strftime("%d/%m/%Y")
expform_ws.Range('B16:B' + str(last_row_ef)).Value = date
expform_ws.Range('D16:D' + str(last_row_ef)).Value = descr

Trong trường hợp điều này giúp: dòng được tô sáng trong Pycharm là "tuyên bố dường như không có tác dụng".

Bất cứ ai cũng có thể giúp phát hiện ra những gì tôi đang làm sai?

Thanks!

Đã hỏi ngày 17 tháng 3 năm 2019 lúc 12:48Mar 17, 2019 at 12:48

3

Trong dòng này

expform_ws.Range("Total").Offset(-1, 0).EntireRow.Insert

Bạn không thực sự gọi hàm, bạn chỉ nhận được "tham chiếu" vào nó, thêm () để gọi nó

expform_ws.Range("Total").Offset(-1, 0).EntireRow.Insert()

Đã trả lời ngày 17 tháng 3 năm 2019 lúc 13:00Mar 17, 2019 at 13:00

NullmannullmanNullman

4.0892 Huy hiệu vàng14 Huy hiệu bạc 30 Huy hiệu Đồng2 gold badges14 silver badges30 bronze badges

Làm cách nào để thêm một cột trong Excel bằng Python?

Excel - Chèn cột bằng Python..
Bước 1) Yêu cầu. Để làm điều này, bạn phải cài đặt mô -đun Win32 của Python. ....
Bước 2) Xây dựng tập lệnh với một đối tượng Excel. ....
Bước 3) Bây giờ tạo hai đối tượng phạm vi. ....
Bước 4) Bây giờ tạo hai đối tượng phạm vi ..

Làm cách nào để chèn một cột vào Excel OpenPyxl?

Bạn có thể chèn các hàng hoặc cột bằng các phương thức bảng tính có liên quan: openpyxl ...
bảng tính.bảng tính.Bảng tính.Chèn_rows ().
bảng tính.bảng tính.Bảng tính.chèn_cols ().
bảng tính.bảng tính.Bảng tính.Xóa_Rows ().
bảng tính.bảng tính.Bảng tính.Delete_cols ().

Làm thế nào để bạn chèn một đối tượng vào excel bằng Python?

Các bước để chèn khối lập phương để excel thông qua Python..
Khởi tạo một đối tượng sổ làm việc.(hoặc-> Tải tệp XLSX với đường dẫn đầy đủ.).
Chọn bảng tính thông qua chỉ mục của nó ..
Sử dụng phương thức Thêm của Shapecollection để chèn một khối trong bảng tính đã chọn ..
Lưu sổ làm việc ở định dạng XLSX ..

Làm thế nào để bạn chèn nhiều hàng từ Excel trong Python?

Để chèn nhiều hàng vào bảng tính, hãy gọi phương thức Insertrows của bộ sưu tập ô.Phương thức Insertrows có hai tham số: chỉ mục hàng, chỉ mục của hàng từ nơi các hàng mới sẽ được chèn.Số lượng hàng, tổng số hàng cần được chèn.call the insertRows method of the Cells collection. The InsertRows method takes two parameters: Row index, the index of the row from where the new rows will be inserted. Number of rows, total number of rows that need to be inserted.