Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用c在excel中选择工作表_C#_.net_Excel_Excel 2007_Office Interop - Fatal编程技术网

C# 使用c在excel中选择工作表

C# 使用c在excel中选择工作表,c#,.net,excel,excel-2007,office-interop,C#,.net,Excel,Excel 2007,Office Interop,在Visual Studio 2008中使用.NET 3.5中的C,我试图在打开的工作簿中设置焦点或激活特定的工作表: 以下是一些属性: public Excel.Application xlApp {get;set;} public Excel.Workbook xlWorkBook { get; set; } public Excel.Worksheet xlWorkSheet { get; set; } public Excel.Range range { get; set; }

在Visual Studio 2008中使用.NET 3.5中的C,我试图在打开的工作簿中设置焦点或激活特定的工作表:

以下是一些属性:

public Excel.Application xlApp {get;set;}
public Excel.Workbook xlWorkBook { get; set; }
public Excel.Worksheet xlWorkSheet { get; set; }
public Excel.Range range { get; set; }        
下面是我如何选择特定工作表的:

(xlWorkSheet)Application.ActiveWorkbook.Sheets[FormControls.WorksheetFocus]).Select(Type.Missing);
我也试过这样做:

((Excel.Worksheet)this.Application.ActiveWorkbook.Sheets[1]).Select();
我做错了什么?如何使用C在工作簿中选择特定的工作表

解释定义的位置:

namespace EmailSalesVolumeSolution
{
    class WorkBook
    {
        public string MasterFileName { get; set; }
        public string[] DistinctEmails { get; set; }
        public Excel.Application xlApp {get;set;}
        public Excel.Workbook xlWorkBook { get; set; }
        public Excel.Worksheet xlWorkSheet { get; set; }
        public Excel.Range range { get; set; }    
所有内容都在同一个类和名称空间中

以下是它的初始化方式:

private void OpenWorkBook()
{
    string str;
    int rCnt = 0;
    int cCnt = 0;


    xlApp = new Excel.ApplicationClass();
    xlWorkBook = xlApp.Workbooks.Open(MasterFileName, 0, true, 5, "", "", true,
        Microsoft.Office.Interop.Excel.XlPlatform.xlWindows,
        "\t", false, false, 0, true, 1, 0);
    xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(FormControls.WorksheetEmails);

你的属性初始化了吗

如果是,您应该能够通过以下任一方式实现您想要实现的目标:

xlApp.ActiveWorkbook.Sheets[1].Activate();
xlWorkbook.Sheets[1].Activate();
xlSheet.Activate();
如果不是,则应至少将xlApp属性初始化为正在使用的应用程序对象,然后使用上述代码。您可以使用下面的代码初始化前两个对象

xlApp = new Microsoft.Office.Interop.Excel.Application();
Workbooks xlWorkbooks = xlApp.Workbooks;
xlWorkbook = xlWorkbooks.Open(@"C:\filename.xlsx");

这就是我所做的,它是有效的

Excel.Worksheet xlWorkSheetFocus = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(2);
xlWorkSheetFocus.Activate();

您可以使用以下代码:

Worksheet sheet = (Worksheet)xlApp.Worksheets[1];
sheet.Select(Type.Missing);


我已经使用了这段代码,它对我来说很好。

您可以通过两种方式来完成:

Excel.Application xlApp;
Excel.Worksheet xlWorksheet;
xlWorksheet=xlApp.Worksheets.get_Item1

xlWorksheet=xlApp.worksheet[1]


非常感谢你。你能解释一下我将如何初始化它吗?所以属性已经初始化了。您是否尝试过使用“如果是”下的代码?我使用了xlWorkbook.Sheets[1]。激活;它工作得很好。试着把你的答案格式化得更好,并添加一些解释。这对我来说是可行的,另外,表格项目从1开始
Excel.Application xlApp;
Excel.Worksheet xlWorksheet;
xlWorkSheet = (Worksheet)xlWorkBook.Worksheets.get_Item(2);
xlWorkSheet =(Worksheet)xlWorkBook.Sheets["SheetName"];