C# 无法将特定excel单元格导入texbox:对象引用未设置为抛出的对象的实例#
您好,我正在尝试将特定excel单元格的值导入表单上的文本框。该值将在表单加载后立即显示。现在这个单元格可以是空的,我正在处理空值,但是每次传递空值时,它都会抛出一个异常并进入catch。以下是我的代码片段:C# 无法将特定excel单元格导入texbox:对象引用未设置为抛出的对象的实例#,c#,C#,您好,我正在尝试将特定excel单元格的值导入表单上的文本框。该值将在表单加载后立即显示。现在这个单元格可以是空的,我正在处理空值,但是每次传递空值时,它都会抛出一个异常并进入catch。以下是我的代码片段: try { var v; if( oSheet.Cells[3, 4].Value2 != null) { v = Sheet.Cells[3, 4].Value2; var s = Convert.ToString(v);
try
{
var v;
if( oSheet.Cells[3, 4].Value2 != null)
{
v = Sheet.Cells[3, 4].Value2;
var s = Convert.ToString(v);
textBox1 = string.Format("{0:N2}", s);
}
else
{
v = 0;
var s = Convert.ToString(v);
textBox1 = string.Format("{0:N2}", v);
}
}
catch(Exception)
{
string errorMessage = "Data cannot be retrieved from the strats file ;
MessageBox.Show(errorMessage);
}
catch显示此异常“对象引用未设置为对象的实例”。我正在处理空的oSheet.Range.Value2,那么为什么它一到达if语句就抛出错误呢?有人能帮我解决这个问题吗?因为好几天你都初始化了“oSheet”对象了吗
嗯。。。我没有。。。你如何初始化osheet我的意思是它不是一个变量或什么的?。。。是的,我注意到拼写错误,但已经处理好了。您的意思是,在定义oSheet时,我应该这样定义oSheet
Microsoft.Office.Interop.Excel.\u工作表oSheet=new Microsoft.Office.Interop.Excel.\u工作表而不是像这样的Microsoft.Office.Interop.Excel.\u工作表oSheet代码>?osheet的类型是什么?我认为您必须先将excel读入工作簿,然后使用“工作表osheet=(工作表)workbook.sheets[I]”进行初始化,您可以从中获得更多说明,我将向您展示整个代码,以便更清楚:“命名空间WindowsFormsApplication1{公共部分类Form2:Form”{公共表单5 frm1;Microsoft.Office.Interop.Excel.Application oXL;Microsoft.Office.Interop.Excel.\u工作簿oWB;Microsoft.Office.Interop.Excel.\u工作表oSheet;oSheet=(Microsoft.Office.Interop.Excel.\u工作表)oWB.工作表[“仪表板”]这是我的工作代码:Excel.Application excelApp=new Excel.Application();string workbookPath=“C:/Book1.xlsx”;Excel.Workbook Excel工作簿=excelApp.Workbooks.Open(workbookPath,0,false,5,”,“”,false,Excel.XlPlatform.xlWindows,“”,true,false,0,true,false,false);Excel.Sheets excelSheets=excelWorkbook.Worksheets;//我无法用空值osheet复制您的问题。
if( oSheet.Cells[3, 4].Value2 != null)
{
//I think you have a spelling mistake, oSheet.Cells[3, 4] vs Sheet.Cells[3,4]
v = Sheet.Cells[3, 4].Value2;
....
}