C#设置打开的工作簿

时间:2017-03-08 17:18:10

标签: c# excel vsto excel-addins

我开始使用C#创建Excel-Add-IN。

我需要做的很简单,我需要将工作簿设置为变量,工作簿已经运行,我尝试了但是没有工作

        Excel.Application excel = new Excel.Application();
        Excel.Workbook wb = excel.ActiveWorkbook as Excel.Workbook;
        wb.SaveAs("C:\\Users\\ro_sg\\Desktop\\Pasta1.xlsx");
        Excel.Worksheet ws = wb.Worksheets["Plan1"]; 
        Excel.Range range = ws.Range["A1"];
        range.Value = "Success";

        wb.Save();

wb变量找不到工作簿(得到null),我看不出原因。

如果你们有任何人发现错误,请告诉我。

谢谢!

3 个答案:

答案 0 :(得分:1)

我相信您的问题是,在设置工作簿变量时可能无法在上游找到活动的Excel应用程序。您的代码似乎正在尝试创建一个新的Excel应用程序(没有工作簿),而不是获取现有的应用程序。

尝试一下:

import 'bootstrap';

答案 1 :(得分:0)

我不知道您是否需要获取特定的工作表,但如果您尝试这样做:
Excel.Worksheet ws = wb.Worksheets [1];
它将获得工作簿的第一张表

答案 2 :(得分:0)

如果您的实际代码没有更多的中间步骤,它将始终失败。我很惊讶这条线没有错误:

Excel.Workbook wb = excel.ActiveWorkbook as Excel.Workbook;

这是因为Excel的新实例不一定会创建新的工作簿。您可以使用以下行检查:

Excel.Application application = new Excel.Application();
Excel.Workbooks workbooks = application.Workbooks;
Console.WriteLine(workbooks.Count); // "0"

但是,新工作簿应创建默认的工作表数量(通常为3,但可编辑)。