复制工作表
在某些情况下,您可能需要复制特定的工作表并对其应用修改。针对这些情况,我们在2016年第一季度引入了API工作表类,使您可以将工作表复制到相同的工作表或另一个工作表工作簿.
的CopyFrom(工作表)方法将复制传递的参数源表放入调用该方法的对象中。这将从源复制所有内容和格式。
示例1说明如何将特定工作表从源工作簿复制到所需目标工作簿中的新工作表。
例1:复制工作表
工作表克隆表= target.Worksheets.Add();clonedSheet.CopyFrom(来源。表[0]作为工作表);
将克隆表作为工作表= target.Worksheets.Add()克隆表。copyfrom (TryCast(source.Sheets(0),工作表))
如果你要复制的表格在一个文档中DocumentTheme已应用,主题不复制。主题是保存在工作簿你可能还需要额外转移它们。
复制工作表既可以在新创建的工作表中完成,也可以在现有工作表中完成。如果要将内容复制到现有工作表中,则目标中以前可用的所有内容都将被删除,并用复制的内容替换。唯一的例外是的名字这张纸将不会被转移。
示例2演示将工作表复制到现有工作簿的稍微复杂的场景。如果工作簿包含同名的工作表,则将要克隆的工作表复制到其中。否则,将创建一个新的工作表,并从源文档复制其名称。
示例2:复制到现有工作簿
bool containsSameName = false;foreach (var targetWorkbook.Worksheets中的工作表){if(工作表。Name == sheetToClone.Name) {containsSameName = true;打破;}} if (containsSameName) {targetWorkbook.Worksheets[sheetToClone. name].CopyFrom(sheetToClone);} else{工作表克隆表= targetWorkbook.Worksheets.Add();clonedSheet.CopyFrom (sheetToClone);clonedSheet。的名字= sheetToClone.Name; }
Dim containsSameName作为布尔值= False为每个工作表作为var在targetWorkbook。Worksheets工作表。Name = sheetToClone。的名字的n containsSameName = True Exit For End If Next If containsSameName Then targetWorkbook.Worksheets(sheetToClone.Name).CopyFrom(sheetToClone) Else Dim clonedSheet As Worksheet = targetWorkbook.Worksheets.Add() clonedSheet.CopyFrom(sheetToClone) clonedSheet.Name = sheetToClone.Name End If