历史
文档模型提供了维护历史堆栈的可能性,该堆栈可以跟踪工作簿内容的所有更改。实现历史WorkbookHistory类和工作簿暴露此类型的属性。工作簿中引入的所有更改都会自动记录,但是,模型还允许对历史进行手动控制。
启用/禁用历史记录
默认情况下,WorkbookHistory类不会记录工作簿中引入的所有更改,但是有些场景需要历史特性。例如,如果您从后面的代码构造整个文档,则不需要记录执行的每个操作。方法启用工作簿的历史记录IsEnabled的属性WorkbookHistory类。但是,如果您希望能够撤消最近的一个或几个更改,则需要启用历史记录。
示例1启用工作簿的历史记录。
例1:启用历史记录
工作簿工作簿=新工作簿();workbook.History.IsEnabled = true;
撤消/重做操作
一旦启用了历史记录,就可以调用它撤销()而且重做()方法分别执行撤消和重做操作。这两个方法都返回一个布尔值,指示操作是否成功。的工作簿类公开布尔属性CanUndo而且CanRedo,指示各自的操作是否适用。
示例2创建具有单个工作表的新工作簿,并设置cell的值A1两次。此外,代码段执行撤消和重做操作。
例2:执行撤消和重做
工作簿工作簿=新工作簿();workbook.History.IsEnabled = true;Worksheet = workbook.Worksheets.Add();工作表。细胞(0,0)。SetValue(“第一个单元格值”);工作表。细胞(0,0)。SetValue(“第二个单元格值”);workbook.History.Undo (); workbook.History.Redo();
聪明的撤销
的工作簿history提供了一个友好的API,允许将多个更改分组到一个撤消步骤中。例如,您可能希望设置一个单元格的值,并将格式化应用到同一单元格,并将这两个操作视为单个撤消操作。这可以通过将赋值与BeginUndoGroup ()而且EndUndoGroup ()方法。
示例3演示如何创建撤消组。
例3:创建undo组
工作簿工作簿=新工作簿();workbook.History.IsEnabled = true;Worksheet = workbook.Worksheets.Add();workbook.History.BeginUndoGroup ();工作表。细胞(0,0).SetValue (15);工作表。细胞(0,0)。SetFormat(新CellValueFormat (" 0.00 "));workbook.History.EndUndoGroup (); workbook.History.Undo(); workbook.History.Redo();
清晰的历史
要清除历史记录你只需要调用Clear ()的方法WorkbookHistory类。注意,如果正在记录撤消组,则不能清除历史记录。如果您试图在调用之后调用该方法BeginUndoGroup ()抛出异常。下面的代码片段说明了如何清除工作簿的历史记录。
示例4清除工作簿的历史记录。
例4:清除历史记录
workbook.History.Clear ();