日期:2014-05-17  浏览次数:21154 次

请问如何在不弹出提示框的情况下保存对Excel的修改?
具体功能是这样的:
在服务器端先拷贝一份已有的Excel文件到指定目录,然后打开该文件,往其中的若干个Sheet中依次写入数据,然后保存。然后再将此文件下载到客户端。

现在的问题是:
如果不加“xApp.DisplayAlerts = false;”会在服务器端弹出另存对话框,点击保存后才可以正常下载,里面的数据也正常。
如果加上“xApp.DisplayAlerts = false;”服务器端不弹出对话框了,可以直接下载,但里面没有数据,也就是下载到的是写入数据之前的文件。

根据相关介绍分析的原因为:
        不弹出对话框的方式下Excel实际上相当于直接默认选择了对话框“不保存”项,因此下载到的文件中没有数据。

我不理解的是我往一个已经存在的excel中写入数据再保存,为什么还要弹出“另存为”对话框?有没有什么办法既不弹出对话框又能保存数据呢?非常感谢

主要代码如下(C#):
object missing = Missing.Value;
        Excel.Application xApp = new Microsoft.Office.Interop.Excel.Application();
        xApp.Visible = false;
        Excel.Workbook xBook = xApp.Workbooks.Open(dstPath, missing, false, missing, 
                missing, missing,missing, missing, missing, missing, missing, missing, 
                missing, missing, missing);
        Excel.Worksheet xSheet1 = (Excel.Worksheet)xBook.Sheets["Sheet1"];
        Excel.Worksheet xSheet2 = (Excel.Worksheet)xBook.Sheets["Sheet2"];

//数据写入略

xApp.DisplayAlerts = false;
        xBook.Save();
        xBook.Close();
        xApp.Quit(); 
        xSheet1 = null;
        xSheet2 = null;
        xBook = null;
        xApp = null;
------最佳解决方案--------------------
看你的情况,是用NET写的吧,怎么发到ASP来了?发到对应的版本去