我需要检查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变量上。
感谢。
答案 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变量具有值(已初始化)。