使用Interop与C#,Excel保存更改的原始。 如何否定这一点?
问题:加载一个Excel电子表格模板。 使用不同文件名的保存命令,然后退出互操作对象。 这最终保存了原始的模板文件。 不是喜欢的结果。
public void saveAndExit(string filename) { excelApplication.Save(filename); excelApplication.Quit(); }
打开的原始文件是c:\ testing \ template.xls传入的文件名是c:\ testing \ 7777(date).xls
有没有人有答案?
(我select的答案是最正确和彻底的,虽然wbk.Close()需要传递给它的参数,谢谢。)
Excel互操作是非常痛苦的。 我挖了一个旧的项目,做了一个小小的摆弄,我想这就是你要找的。 其他的评论者都是对的,但是,至less在我的经验中,如果你在VBA中使用了相同的对象(没有interop包装器),调用SaveAs()比你期望的要多得多。
Microsoft.Office.Interop.Excel.Workbook wbk = excelApplication.Workbooks[0]; //or some other way of obtaining this workbook reference, as Jason Z mentioned wbk.SaveAs(filename, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); wbk.Close(); excelApplication.Quit();
得爱所有那些Type.Missings。 但我认为他们是必要的。
您可以使用Workbook对象并调用SaveAs()方法,而不是使用ExcelApplication。 你可以在那里传递更新的文件名。
你有没有尝试从工作表的SaveAs?
- 另存为
- 每当我必须做互操作我创build一个单独的VB.NET类库,并写在VB中的逻辑。 这是不值得在C#中做这件事的麻烦
- C# – 是否可以使用函数信函(A1)与workSheet.Cells?
- 无法投射“Microsoft.Office.Interop.Excel.WorksheetClass”types的COM对象
- 将数据写入Excel时如何使正确的date格式
- 在Excel中设置Excel FitToPagesWide为“自动”(VTSO)
- 从HTML生成Excel文件
- 在Excel中,使用OpenXML,你如何改变C#中checkbox的值?
- closuresxml错误:“删除logging:从/xl/workbook.xml部分命名范围”撇号问题
- 如何在VSTO C#的excel单元格中添加自动完成文本框
- 往返XML – > Excel – > XML