C# 访问第二张工作表总是无效索引

C# 访问第二张工作表总是无效索引,c#,excel,office-interop,C#,Excel,Office Interop,我试图创建一个新的excel工作表,但当我试图访问第二个工作表时,它总是抛出无效索引异常 它总是在xlWs3=xlWb2.Worksheets.get_Item2处显示错误 感谢您的帮助首先尝试从索引0开始 xlWs2=xlWb2.Worksheets.get_Item0 来自马斯洛的评论: 使用xlWb.sheets.Count检查新工作簿中是否有其他工作表 如果count==1,则应首先使用xlWb.sheets.AddAfter:xlWb.sheets[xlWb.sheets.count]

我试图创建一个新的excel工作表,但当我试图访问第二个工作表时,它总是抛出无效索引异常

它总是在xlWs3=xlWb2.Worksheets.get_Item2处显示错误


感谢您的帮助

首先尝试从索引0开始


xlWs2=xlWb2.Worksheets.get_Item0

来自马斯洛的评论:

使用xlWb.sheets.Count检查新工作簿中是否有其他工作表

如果count==1,则应首先使用xlWb.sheets.AddAfter:xlWb.sheets[xlWb.sheets.count]添加新图纸

然后调用xlWb.Worksheets.get_Item2

享受吧


感谢MasLoo的帮助

使用xlWb2.Worksheets.Count查看它是否为空或小于2,然后调用get_Item方法。@MasLoo是的,我意识到microsoft excel 2013和2010有一些不同,microsoft excel 2010在创建新工作簿时已经提供了3张工作表,而microsoft excel 2013在创建新工作簿时只提供了1张工作表新工作簿,所以我添加了工作表,然后我调用get_Item方法..不客气。快乐编码。
xlApp2 = new Excel.Application();
xlWb2 = xlApp2.Workbooks.Add();
xlWs2 = xlWb2.Worksheets.get_Item(1);
xlWs2.Name = "Format OR";
for (int j = 1; j < rowor; j++)
{
    xlWb2.Sheets[1].Activate();
    if (fulldataOR[j][23] != "RJCT")
    {
        createHeaderformatOR(xlWs2);
        xlWs2.Cells[berhasilOr, 1] = fulldataOR[j][2];
        xlWs2.Cells[berhasilOr, 2] = fulldataOR[j][3];
        xlWs2.Cells[berhasilOr, 3] = fulldataOR[j][4];
        xlWs2.Cells[berhasilOr, 4] = fulldataOR[j][5];
        xlWs2.Cells[berhasilOr, 5] = fulldataOR[j][6];
        xlWs2.Cells[berhasilOr, 6] = fulldataOR[j][7];
        xlWs2.Cells[berhasilOr, 7] = fulldataOR[j][8];
        xlWs2.Cells[berhasilOr, 8] = fulldataOR[j][9];
        xlWs2.Cells[berhasilOr, 9] = fulldataOR[j][12];
        xlWs2.Cells[berhasilOr, 10] = fulldataOR[j][13];
        xlWs2.Cells[berhasilOr, 11] = fulldataOR[j][14];
        xlWs2.Cells[berhasilOr, 12] = fulldataOR[j][15];
        xlWs2.Cells[berhasilOr, 13] = fulldataOR[j][16];
        xlWs2.Cells[berhasilOr, 14] = fulldataOR[j][17];
        xlWs2.Cells[berhasilOr, 15] = fulldataOR[j][18];
        xlWs2.Cells[berhasilOr, 16] = fulldataOR[j][19];
        xlWs2.Cells[berhasilOr, 17] = fulldataOR[j][20];
        xlWs2.Columns.AutoFit();
        berhasilOr++;
    }
}

xlWs3 = xlWb2.Worksheets.get_Item(2);
xlWs3.Name = "PBK - USD";
for (int j = 1; j < rowusd; j++)
{
    xlWb2.Sheets[2].Activate();
    if (fulldataUSD[j][9] == "USD")
    {
        if (fulldataUSD[j][11] != "RJCT")
        {
            //MessageBox.Show(fulldataUSD[j][1]);
            createHeaderPBKUSD2(xlWs3);
            xlWs3.Cells[berhasilusd, 1] = fulldataUSD[j][4];
            xlWs3.Cells[berhasilusd, 2] = fulldataUSD[j][5];
            xlWs3.Cells[berhasilusd, 3] = "";
            xlWs3.Cells[berhasilusd, 4] = "";
            xlWs3.Cells[berhasilusd, 5] = "";
            xlWs3.Cells[berhasilusd, 6] = "";
            xlWs3.Cells[berhasilusd, 7] = "";
            xlWs3.Cells[berhasilusd, 8] = "";
            xlWs3.Cells[berhasilusd, 9] = "";
            xlWs3.Cells[berhasilusd, 10] = "";
            xlWs3.Cells[berhasilusd, 11] = fulldataUSD[j][3];
            xlWs3.Cells[berhasilusd, 12] = "";
            xlWs3.Cells[berhasilusd, 13] = fulldataUSD[j][2];
            xlWs3.Cells[berhasilusd, 14] = fulldataUSD[j][9];
            xlWs3.Cells[berhasilusd, 15] = fulldataUSD[j][6];
            xlWs3.Cells[berhasilusd, 16] = "";
            xlWs3.Cells[berhasilusd, 17] = fulldataUSD[j][7];
            xlWs3.Cells[berhasilusd, 18] = "";
            xlWs3.Cells[berhasilusd, 19] = "";
            berhasilusd++;
            xlWs3.Columns.AutoFit();
        }
    }
}