簡體   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