C# 访问第二张工作表总是无效索引
我试图创建一个新的excel工作表,但当我试图访问第二个工作表时,它总是抛出无效索引异常 它总是在xlWs3=xlWb2.Worksheets.get_Item2处显示错误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]
感谢您的帮助首先尝试从索引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();
}
}
}