2017-08-24 8 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 - エクセル2016 - VS 2017 - .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);を実行しなければなりませんでした。トーンありがとう! –

関連する問題