我正在尝试将ListObject从.NET 3.5 Excel 2007 VSTO工作簿保存到新工作表(完成),并将该新工作表保存到新工作簿(完成),而该工作簿不需要VSTO自定义文件(!!! !!)。
有人有运气吗?我取得任何成功的唯一方法就是保存为CSV文件,但在这种情况下这并不完全可以接受。我宁愿不保存到CSV只是为了复制回XLS文件。
worksheet.SaveAs(saveDialog.FileName,Excel.XlFileFormat.xlOpenXMLWorkbook)
答案 0 :(得分:5)
如果我理解正确,您不希望新工作簿文件依赖或加载任何VSTO自定义吗?
尝试使用此MSDN link从工作簿中删除VSTO自定义程序集。
答案 1 :(得分:1)
好的,这并没有最终为我工作,这就是原因。答案仍然正确,但我想澄清未来的用户。
我有一个ListObject,我想使用VSTO保存在外部工作簿中。创建一个新的工作表并使用SaveAs会将当前的工作簿重命名为该工作簿,因此我必须关闭整个工作簿以删除自定义。
从一开始我应该做的是:
创建工作表并在所述工作表上填充ListObject。然后使用没有参数的.Copy()来创建新工作簿。然后,我如何找到工作簿?我只是将Worksheet命名为Now.Ticks.ToString()并查找任何打开的工作簿,其ActiveSheet.Name为Now.Ticks.ToString()。对于这个应用程序,它不需要更深入。我保存了那本工作簿然后关闭它。由于工作簿是使用Copy创建的,因此它没有自定义,问题也解决了。