Hướng dẫn openpyxl remove_sheet - openpyxl remove_sheet

Vì vậy, tôi đã gặp phải một vấn đề với remove_sheet() với OpenPXYL mà tôi không thể tìm thấy câu trả lời. Khi tôi chạy mã sau:

import openpyxl

wb = openpyxl.Workbook()
ws = wb.create_sheet("Sheet2")
wb.get_sheet_names()
['Sheet','Sheet2']
wb.remove_sheet('Sheet')     

Tôi nhận được lỗi sau đây:

ValueError: list.remove(x): x not in list

Nó không hoạt động, ngay cả khi tôi thử wb.remove_sheet(0) hoặc wb.remove_sheet(1), tôi nhận được cùng một lỗi. Có điều gì tôi đang thiếu không?

Hỏi ngày 20 tháng 9 năm 2017 lúc 16:38Sep 20, 2017 at 16:38

Hướng dẫn openpyxl remove_sheet - openpyxl remove_sheet

Nếu bạn sử dụng get_sheet_by_name, bạn sẽ nhận được như sau:

DeprecationWarning: Gọi đến chức năng không dùng nữa get_sheet_by_name (sử dụng

ValueError: list.remove(x): x not in list
1).

Vì vậy, giải pháp sẽ là:

xlsx = Workbook()
xlsx.create_sheet('other name')
xlsx.remove(xlsx['Sheet'])
xlsx.save('some.xlsx')

Hướng dẫn openpyxl remove_sheet - openpyxl remove_sheet

Đã trả lời ngày 1 tháng 8 năm 2018 lúc 8:01Aug 1, 2018 at 8:01

ValueError: list.remove(x): x not in list
2 được cung cấp một đối tượng trang tính, không phải tên của tờ!

Vì vậy, đối với mã của bạn, bạn có thể thử

wb.remove(wb.get_sheet_by_name(sheet))

Trong cùng một tĩnh mạch, remove_sheet cũng không được cung cấp một chỉ mục, bởi vì nó hoạt động trên đối tượng trang tính thực tế.

Đây là một nguồn ví dụ tốt (mặc dù đó không phải là vấn đề tương tự mà bạn đang gặp phải, nhưng nó chỉ xảy ra để chỉ ra cách gọi đúng phương thức remove_sheet)!

Joecondron

8.1062 Huy hiệu vàng25 Huy hiệu bạc27 Huy hiệu Đồng2 gold badges25 silver badges27 bronze badges

Đã trả lời ngày 20 tháng 9 năm 2017 lúc 16:41Sep 20, 2017 at 16:41

Hướng dẫn openpyxl remove_sheet - openpyxl remove_sheet

Cosinepenguincosinepenguincosinepenguin

1.4901 Huy hiệu vàng11 Huy hiệu bạc20 Huy hiệu đồng 201 gold badge11 silver badges20 bronze badges

Vì câu hỏi đã được đăng và trả lời, thư viện OpenPyXL đã thay đổi.

Bạn không nên sử dụng

ValueError: list.remove(x): x not in list
3 như được chỉ ra bởi @cosinepenguin vì nó hiện đang bị khấu hao (bạn sẽ nhận được cảnh báo khi cố gắng sử dụng nó) nhưng
ValueError: list.remove(x): x not in list
4

Đã trả lời ngày 2 tháng 1 năm 2019 lúc 16:39Jan 2, 2019 at 16:39

Hướng dẫn openpyxl remove_sheet - openpyxl remove_sheet

Trong Python 3.7

 import openpyxl

 wb = openpyxl.Workbook()

 ws = wb.create_sheet("Sheet2")

 n=wb.sheetnames

 #sheetname =>get_sheet_names()

 wb.remove(wb["Sheet"])

 '#or can use' 

 wb.remove(wb[n[1]])

1 là bảng chỉ mục "Bảng"

Bạn có thể truy cập liên kết này để biết thêm thông tin

Đã trả lời ngày 22 tháng 6 năm 2019 lúc 10:48Jun 22, 2019 at 10:48

Hướng dẫn openpyxl remove_sheet - openpyxl remove_sheet

ismailismailismail

1812 Huy hiệu bạc6 Huy hiệu đồng2 silver badges6 bronze badges

________ 44 (được đặt tên_range) [Nguồn] ¶

Xóa một tên_range khỏi sổ làm việc này.(write_only=False, iso_dates=False)[source]

DEVERATED: Sử dụng del workbook.defined_names [name]

________ 45 (bảng tính) [Nguồn] ¶

DEVERSE: Sử dụng wb.remove (bảng tính) hoặc del wb [sheetName]

________ 46 (tên tệp) [Nguồn] ¶

Type:Lưu sổ làm việc hiện tại theo tên tệp đã cho. Sử dụng chức năng này thay vì sử dụng Excelwriter.
Cảnh báo(named_range)[source]

Khi tạo sổ làm việc của bạn bằng Write_only Set thành True, bạn sẽ chỉ có thể gọi chức năng này một lần. Các lần tiếp theo cố gắng sửa đổi hoặc lưu tệp sẽ tăng ngoại lệ

 import openpyxl

 wb = openpyxl.Workbook()

 ws = wb.create_sheet("Sheet2")

 n=wb.sheetnames

 #sheetname =>get_sheet_names()

 wb.remove(wb["Sheet"])

 '#or can use' 

 wb.remove(wb[n[1]])
7.

Ghi chú

________ 48¶

Trả về danh sách tên của bảng tính trong sổ làm việc này.(style)[source]

Tên được trả lại theo thứ tự bảng tính.

Danh sách các chuỗi

________ 49¶

Type:Danh sách các kiểu được đặt tên
remove_sheet()0 = False¶ ________ 51¶()[source]

Một danh sách các tờ trong sổ làm việc này

Danh sách
ValueError: list.remove(x): x not in list
9(from_worksheet)[source]

________ 53¶

________ 36 () [Nguồn] ¶

Dành: Sử dụng WB.SheetNames

Parameters: ________ 37 (bảng tính) [Nguồn] ¶ – the worksheet to be copied from
Returns:Trả lại chỉ số của một bảng tính.
________ 38¶(title=None, index=None)[source]
xlsx = Workbook()
xlsx.create_sheet('other name')
xlsx.remove(xlsx['Sheet'])
xlsx.save('some.xlsx')
7(name, worksheet=None, value=None, scope=None)[source]

Loại MIME được xác định bằng việc một sổ làm việc có phải là một mẫu hay không và liệu nó có chứa macro hay không. Excel yêu cầu tiện ích mở rộng tệp để khớp nhưng OpenPyXL không thực thi điều này.

________ 39 (tờ, offset = 0) [Nguồn] ¶(title=None, index=None)[source]

Di chuyển một tờ hoặc tên trang

Parameters:
  • ________ 40¶ (str) – optional title of the sheet
  • Danh sách có sẵn các kiểu được đặt tên (int) – optional position at which the sheet will be inserted
________ 29¶ ________ 30¶ ________ 31¶ ________ 32 (bảng tính) [Nguồn] ¶(worksheet)[source]

Trả lại chỉ số của bảng tính.

Ghi chú

Dành: Sử dụng wb.index (bảng tính)

________ 33 (tên) [Nguồn] ¶(name)[source]

Trả về phạm vi được chỉ định theo tên.

Ghi chú

Dành: Sử dụng wb.index (bảng tính)

________ 33 (tên) [Nguồn] ¶()[source]

Trả về phạm vi được chỉ định theo tên.

Ghi chú

Dành: Sử dụng wb.index (bảng tính)

________ 33 (tên) [Nguồn] ¶(name)[source]

Trả về phạm vi được chỉ định theo tên.

Dành: Sử dụng Workbook.defined_names [name] ________ 34 () [Nguồn] ¶
Trả về tất cả các phạm vi được đặt tênDành: Sử dụng Workbook.defined_names.definedName

Ghi chú

Dành: Sử dụng wb.index (bảng tính)

________ 33 (tên) [Nguồn] ¶()[source]

Ghi chú

Dành: Sử dụng wb.index (bảng tính)

________ 33 (tên) [Nguồn] ¶(worksheet)[source]

Trả về phạm vi được chỉ định theo tên.

Dành: Sử dụng Workbook.defined_names [name]

________ 34 () [Nguồn] ¶

Trả về tất cả các phạm vi được đặt tên(sheet, offset=0)[source]

Dành: Sử dụng Workbook.defined_names.definedName

________ 8 (Tên) [Nguồn] ¶

Trả về một bảng tính theo tên của nó.

Tên tham số:(worksheet)[source]

tên của bảng tính để tìm kiếm

tên loại:(named_range)[source]

sợi dây

Ghi chú

Dành: Sử dụng WB [SheetName]

________ 36 () [Nguồn] ¶(worksheet)[source]

tên của bảng tính để tìm kiếm

Ghi chú

tên loại:

sợi dây(filename)[source]

Lưu sổ làm việc hiện tại theo tên tệp đã cho.Sử dụng chức năng này thay vì sử dụng Excelwriter.

Cảnh báo

Khi tạo sổ làm việc của bạn bằng Write_only Set thành True, bạn sẽ chỉ có thể gọi chức năng này một lần.Các lần tiếp theo cố gắng sửa đổi hoặc lưu tệp sẽ tăng ngoại lệ

 import openpyxl

 wb = openpyxl.Workbook()

 ws = wb.create_sheet("Sheet2")

 n=wb.sheetnames

 #sheetname =>get_sheet_names()

 wb.remove(wb["Sheet"])

 '#or can use' 

 wb.remove(wb[n[1]])
7.

________ 48¶

Trả về danh sách tên của bảng tính trong sổ làm việc này.

Tên được trả lại theo thứ tự bảng tính.

Type:Danh sách các chuỗi
________ 49¶

Danh sách các kiểu được đặt tên

remove_sheet()0 = False¶ ________ 51¶

Một danh sách các tờ trong sổ làm việc này

Type:Danh sách
ValueError: list.remove(x): x not in list
9
________ 53¶