我需要指定使用后期绑定创建的工作表数量。这是我的代码&异常表示无效索引:
oSheets = oWB.GetType()
.InvokeMember("Worksheets", BindingFlags.GetProperty, null, oWB, new object[] { 7 });
下面的代码可以工作并创建3个工作表,
oSheets = oWB.GetType()
.InvokeMember("Worksheets", BindingFlags.GetProperty, null, oWB, null );
让我知道创建具有指定编号的工作表需要做些什么。
答案 0 :(得分:1)
您获得异常的原因是您正在调用属性并尝试将参数传递给它。 Excel默认创建3个工作表,这就是第二行的工作原理。如果要添加更多工作表,则需要调用Workbook.Worksheets.Add()
方法并指定count属性。您可以按照要求继续使用反射,但如果使用dynamic
类型,则更容易编写(和回读):
dynamic oWB = GetWorkbook();
dynamic oSheets = oWB.Worksheets();
//We now have 3 worksheets, and now we will add 4 more
oSheets.Add(null, null, 4, xlSheetType.xlWorksheet);
如果需要,枚举:
public enum xlSheetType
{
xlWorksheet = -4167
}