工作表没有被删除 – 添加一个新的会导致名称冲突错误
foreach (Excel.Worksheet sheet in m_objExcel.Sheets) { if (sheet.Name == "Before & After Lube Weight") { //sheet.Delete(); (Excel.Worksheet)m_objExcel.Sheets[6]).Delete(); m_objSheet = (Excel.Worksheet)m_objSheets.Add(m_objSheets[6], Type.Missing, Type.Missing, Type.Missing); m_objSheet.Name = "Before & After Lube Weight"; } }
上面的代码用于用新的工作表覆盖现有的工作表。 我试图一行一行的debugging,所有的代码工作正常,但工作表永远不会被删除之前添加具有相同名称的另一个工作表(注意框架2.0)。
发生exception消息
错误:无法将名称重命名为另一张纸
我相信这是因为以前的工作表没有正确删除。
你目前的解决scheme似乎对我来说效率不高…听起来你所要做的就是清理你的工作表….
尝试删除Cells
…
foreach (Excel.Worksheet sheet in m_objExcel.Sheets) { if (sheet.Name == "Before & After Lube Weight") { sheet.Cells.Delete(); } }
如果仍然,你想删除你的表,然后记住这是一个坏的方法…
(Excel.Worksheet)m_objExcel.Sheets[6]).Delete();
如果使用此方法删除工作表,则不需要迭代集合。 如果一些表已被添加或删除您的collections索引可能会改变,所以你怀疑第六表可能不再在那里等…
正确的方法是( 不知道为什么它在你的代码中被评论 )
sheet.Delete();