vsto:使用c#在相同的解决方案中从Windows窗体应用程序中调用不同的excel工作簿

时间:2014-01-13 01:52:19

标签: c# excel vsto

我有3个项目包含一个Windows窗体应用程序(WFA)和两个excel工作簿在一个解决方案中。

我想通过点击相同解决方案中WFA中的不同按钮来调用/打开两个工作簿。 我被困在编码上.. 不知道如何编码打开,激活......等等。

任何人都有任何想法可以提供帮助吗?

* ps:我对vsto / c#.net

很新

我试过这个.. 但是工作簿没有打开..

private void Button_Click(object sender, EventArgs e)
{
     Microsoft.Office.Interop.Excel.Application xlApp;
     Microsoft.Office.Interop.Excel.Workbook xlWorkBook;
     Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
     object misValue = System.Reflection.Missing.Value;

     xlApp = new Microsoft.Office.Interop.Excel.ApplicationClass();
     xlWorkBook = xlApp.Workbooks.Open(@"C:\Document\PROJECT\abc.xlsx");
     xlWorkSheet = (Microsoft.Office.Interop.Excel.xlWorkSheet)xlWorkBook.Worksheets.get_Item(1);

     ((Microsoft.Office.Interop.Excel._Worksheet)xlWorkBook).Activate();

     xlWorkBook.Close(true, misValue, misValue);
     xlApp.Quit(); 
    }

2 个答案:

答案 0 :(得分:1)

对您的代码进行简单的调整

Microsoft.Office.Interop.Excel.Application xlApp;
            Microsoft.Office.Interop.Excel.Workbook xlWorkBook;
            Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
            object misValue = System.Reflection.Missing.Value;

            xlApp = new Microsoft.Office.Interop.Excel.Application();
            xlApp.Visible = true;
            xlWorkBook = xlApp.Workbooks.Open(@"C:\Users\knm\Documents\Book2.xlsx");
            xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
            xlWorkSheet.Activate();


            xlWorkBook.Close(true, misValue, misValue);
            xlApp.Quit();

答案 1 :(得分:0)

VB.net

   Private Sub Button1_Click(sender As System.Object, e As    Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs) Handles Button1.Click
    Dim Dirdata As String = "\\drive\folder\Template.xlsb"

    Dim xlApp As Microsoft.Office.Interop.Excel.Application
    Dim xlWorkbook As Microsoft.Office.Interop.Excel.Workbook
    Dim xlWorksheet  as Microsoft.Office.Interop.Excel.Worksheet
    xlApp = New Microsoft.Office.Interop.Excel.Application()
    xlWorkbook = xlApp.Workbooks.Open(Dirdata, , True, , "password")
    xlApp.Visible = True

    xlWorksheet = xlWorkbook.Worksheets(1)
    xlWorksheet.Activate()

    MsgBox(xlWorkbook.Name)

    xlWorkbook.Close(False)

End Sub