从Excel打印到标签中
问题描述:
我有一个有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
答
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);'它工作。万分感谢! –
做你试过'label_IRMet.Text = Convert.ToString(oSheet.Cells [oRng.Row,IRPlace]); ' –
是的,但它显示标签中的“System .__ ComObject”。任何猜测?根据你的说法,代码是否正确? –