繁体   English   中英

如何在现有工作簿中添加新工作表?

[英]How to add new sheet in an existing workbook?

我正在尝试使用c#使用以下代码创建一个新工作表。 我的Excel文件已经有2张纸,问题是添加了第三张纸。 但是,程序在我创建var newS的行中崩溃。 有人可以解释为什么吗?

我肯定知道问题不是在创建newS之前发生的,因为我一直在调试代码,并且在没有最后两行的情况下它可以很好地工作。

wbs= excel.Workbooks;
wb=wbs.Open(Path.Combine(App.Domain.BaseDiretory, template_path, template_filename)) 

Excel.Sheets shs=wb.Sheets;

Excel.Worksheet sh=shs[1] as Excel.Worksheet;
//code not relevant between these lines
Marshall.ReleaseComObject(sh);

Excel.Worksheet sh=shs[2] as Excel.Worksheet;
//code not relevant between these lines
Marshall.ReleaseComObject(sh);

var newS=(Excel.Worksheet)shs.Add(shs[3], Type.missing, Type.missing, Type.missing);

newS.name="1";

shs.Add(shs[3], Type.missing, Type.missing, Type.missing); 您说您的工作簿中有两张纸,因此该电话看起来无效。 您正在尝试在不存在的第三个表之前添加新表。 请参阅文档

Before -可选-变形-一个对象,该对象指定在其之前添加新图纸的图纸。

所有参数都是可选的; 可能是您应该只传递Type.Missing而不是shs[3] 新工作表将添加到活动工作表之前。

如果同时省略了“之前”和“之后”,则将新工作表插入到活动工作表之前。

或者,替换该调用以表示存在的工作表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM