当前位置:  开发笔记 > 编程语言 > 正文

使用Interop with C#,Excel保存更改原件.怎么否定这个?

如何解决《使用InteropwithC#,Excel保存更改原件.怎么否定这个?》经验,为你挑选了1个好方法。

问题:加载Excel电子表格模板.使用具有不同文件名的Save命令,然后退出interop对象.这最终会保存原始模板文件.不是喜欢的结果.

public void saveAndExit(string filename)
{        
    excelApplication.Save(filename);
    excelApplication.Quit();
}

打开的原始文件是c:\ testing\template.xls传入的文件名是c:\ testing\7777(date).xls

有人有答案吗?

(我选择的答案是最正确和最彻底的,虽然wbk.Close()需要传递给它的参数.谢谢.)



1> Kevin Crumle..:

Excel互操作非常痛苦.我挖了一个旧项目,做了一点点摆弄,我觉得这就是你要找的东西.其他评论者是对的,但是,至少根据我的经验,如果你在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.但我认为他们是必要的.

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有