使用infragistics检查工作表是否存在

时间:2015-06-29 10:32:38

标签: c# excel infragistics

我需要检查excel中是否存在工作表,如果不存在,则需要创建它。我正在使用infragistics,以下代码给出了以下错误:

  

使用未分配的局部变量'workSheet'。

这是代码:

Workbook workbook = new Workbook();
 Worksheet workSheet;
 foreach (Something result in results)
  {            
     foreach (Something item in result.Something)
     {
         if (!workbook.Worksheets.Exists(item.GetType().Name))
         {
             workSheet = workbook.Worksheets.Add(item.GetType().Name);
         }
         // cell font
        IWorkbookFont oFont = workSheet.Workbook.CreateNewWorkbookFont();
....
    }
}

错误与:IWorkbookFont oFont = workSheet.Workbook.CreateNewWorkbookFont()

有关

在workSheet变量上。

感谢。

2 个答案:

答案 0 :(得分:1)

以下是如何避免错误的方法。声明它时,将工作表初始化为null。在访问工作表之前不要忘记空检查。

Workbook workbook = new Workbook();
Worksheet workSheet = null;
foreach (Something result in results)
{            
     foreach (Something item in result.Something)
     {
         if (!workbook.Worksheets.Exists(item.GetType().Name))
         {
             workSheet = workbook.Worksheets.Add(item.GetType().Name);
         }

         if (workSheet != null)
         {

             // cell font
             IWorkbookFont oFont = workSheet.Workbook.CreateNewWorkbookFont();
             ....
         }
        ....
     }
}

答案 1 :(得分:0)

我找到了答案:

  Worksheet workSheet = null;
 if (!workbook.Worksheets.Exists(item.GetType().Name))
                {
                    workSheet = workbook.Worksheets.Add(item.GetType().Name);
                }
                else
                {
                    workSheet = workbook.Worksheets[item.GetType().Name];
                }
                // cell font
                IWorkbookFont oFont = workSheet.Workbook.CreateNewWorkbookFont();

我必须确保workSheet变量具有值(已初始化)。