繁体   English   中英

在VSTO加载项C#中保存Excel工作簿

[英]Save Excel Workbook in VSTO Addin C#

我编写了一个Excel插件,当按下按钮时,它会更改某些单元格的内容。 现在,我想添加一些功能,以便在进行这些替换后将工作簿保存到新文件中。

这是我的努力,这在某种程度上并不像我想象的那样有效。

这是将文件保存在我的ThisAddIn.cs中的代码:

public static void saveasnewfile()
        {
            Globals.ThisAddIn.Application.ActiveWorkbook.SaveCopyAs(@"C:\XXXX.XLS");
        }

这就是我调用此函数的方式(例如,按下按钮时):

//...
ThisAddIn.saveasnewfile();
//...

现在,当我按下所说的按钮时,我收到此错误消息:

Microsoft Excel无法访问文件'C:\\ XXXX.XLS'。 有几种可能的原因:

•文件名或路径不存在。 •该文件正在被另一个程序使用。 •您要保存的工作簿与当前打开的工作簿具有相同的名称。

这对我来说有点奇怪。 当然文件不存在,因为我要创建它...

那我在这里想念什么?

我想添加功能,以便稍后提示用户输入带有savefiledialog的路径。 所以那里的一些技巧也会有所帮助:)

解:

对于可能偶然发现同一件事的任何人,这是我使用SaveFileDialog实现它的方式:

var saveDialog = new SaveFileDialog() //create new instance of savefiledialog
{  
    Title = "Save As", //sets title of dialog box
    Filter = "Excel Worbook (*.xlsx)|*.xlsx", //filter for .xlsx files
    AddExtension = true, //automatically adds the .xlsx extension
    CheckPathExists = true //checks if the given path really exists
}

if (saveDialog.ShowDialog() == DialogResult.OK)
{
Globals.ThisAddIn.Application.ActiveWorkbook.SaveCopyAs(saveDialog.FileName);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM