2017-08-24 72 views
0

我有一个有47列和大约100行的excel表。我有一个带有文本框,按钮和标签的Windows窗体应用程序。从Excel打印到标签中

这里就是我想要做的事:

当我粘贴了一些在文本框中,然后单击按钮,它会搜索整个Excel工作表和获取的,其中特定字符串的行和列工作表(行,列)。这工作正常。我对表演很满意。这是我真正想要做的 -

当我得到搜索字符串的位置后,我想要到同一行的第45列,并从该单元格获取字符串,并将其显示在标签。

这里是我的代码(没有我没有工作!)

string File_name = "C:\\Users\\v-nikken\\Documents\\My Received Files\\Case Wellness.xlsx"; 
Microsoft.Office.Interop.Excel.Application oXL = new Microsoft.Office.Interop.Excel.Application(); 
Microsoft.Office.Interop.Excel.Workbook oWB; 
Microsoft.Office.Interop.Excel.Worksheet oSheet; 
try 
{ 
    object missing = System.Reflection.Missing.Value; 
    oWB = oXL.Workbooks.Open(File_name, missing, missing, missing, missing, 
        missing, missing, missing, missing, missing, missing, 
        missing, missing, missing, missing); 
    oSheet = (Microsoft.Office.Interop.Excel.Worksheet)oWB.Worksheets[1]; 
    Microsoft.Office.Interop.Excel.Range oRng = GetSpecifiedRange(textBox_SRNumber.Text, oSheet); 
    if (oRng != null) 
    { 

     //THIS IS THE LOGIC I HAVE TO TAKE VALUE FROM THE CELL TO THE LABEL 
     //AND OBV IT ISN'T WORKING 

     int IRPlace = Convert.ToInt32(oRng.Column) + 46; //This is obv wrong 

     label_IRMet.Text = Convert.ToString(oSheet.Cells[Convert.ToInt32(oRng.Row), IRPlace]); //This also 
     label_scope_sent.Text = IRPlace.ToString(); 

    } 
    else 
    { 
     MessageBox.Show("Case number not found!", "Please try again"); 
    } 
    oWB.Close(false, missing, missing); 

    oSheet = null; 
    oWB = null; 
    oXL.Quit(); 
} 
catch (Exception ex) 
{ 
} 

很抱歉的格式。代码部分由于某种原因不起作用。

请帮忙!!

的Windows 10 - Excel的2016 - 2017年VS - .NET 4.6.1

+0

做你试过'label_IRMet.Text = Convert.ToString(oSheet.Cells [oRng.Row,IRPlace]); ' –

+0

是的,但它显示标签中的“System .__ ComObject”。任何猜测?根据你的说法,代码是否正确? –

回答

1

Microsoft.Office.Interop.Excel.Range valueForLabel=(Microsoft.Office.Interop.Excel.Range)yourSheet.Cells[oRng.Row,IRPlace]; string labelText=valueForLabel.Value.ToString();

+0

好的,那么我必须做'label_IRMet.Text = Convert.ToString(valueForLabel.Text);'它工作。万分感谢! –