我需要使用python将excel文件中的工作表数量限制为特定数量。一旦该工作簿中的工作表数量达到特定数量,用户就无法添加新的工作表。使用python限制excel文件中的工作表数量
我找不到使用任何解决方案xlsxwriter,openpyxl或xlrd
是否有使用其他一些封装的任何选项?
我需要使用python将excel文件中的工作表数量限制为特定数量。一旦该工作簿中的工作表数量达到特定数量,用户就无法添加新的工作表。使用python限制excel文件中的工作表数量
我找不到使用任何解决方案xlsxwriter,openpyxl或xlrd
是否有使用其他一些封装的任何选项?
保护工作簿also disables other worksheet operations,如移动,重命名和隐藏/取消隐藏,这可能会或可能不需要。
OTOH,VBA的处理器可以比链路上的一个更智能:
Private Sub Workbook_NewSheet(ByVal Sh As Object)
If ThisWorkbook.Worksheets.Count > <Maximum> Then
With Application
.ScreenUpdating = False
.DisplayAlerts = False
Sh.Delete
.DisplayAlerts = True
.ScreenUpdating = True
End With
End If
End Sub
当然,这不会有任何影响,如果一个编辑与第三方软件包,没有文件运行VBA,或者在Excel中禁用宏。
要有宏,工作簿必须保存为.xlsm
,否则Excel在打开时会出现错误。
请参阅Working with VBA Macros — XlsxWriter Documentation关于Python的实现。 openpyxl
cannot work with macros, only preserve them at most和xlrd
looks like being designed to only read rather than edit。或者,总是有Excel自己的COM接口pywin32
可以使用。
请问excel是否支持此功能? – Dekel
我不知道它是否有任何这样的功能,因为行和列可以被限制,我认为这也会有一个选项..我不知道这个 – Jithin
首先 - 检查如果Excel支持它(我'我真的不确定)。如果确实如此 - 接下来要看看是否有任何库实现了它。如果没有 - 是时候实施并将其交还给开源社区:) – Dekel