使用c#在一系列Excel单元格中获取特定文本

本文关键字:获取 文本 单元格 一系列 Excel 使用 | 更新日期: 2023-09-27 18:14:01

我在WPF应用程序与excel工作。在该应用程序中,我有一个列名为散装。该列包含两个选项,如YES和NO作为文本。现在我需要指示字体为红色为YES选项和正常黑色为NO选项。我得到了特定列的值域。但是我不知道我该如何分别得到YES选项和NO选项,我还需要根据需要给这些选项上色。

这里我提到了我的代码:

foreach(Range Value in range.cells)
{
???????
???????
}
谁来告诉我这个问题的解决方法?我该如何进行这个过程呢?

使用c#在一系列Excel单元格中获取特定文本

试试这个

string strFileName = "D:''test1.xlsx";
Microsoft.Office.Interop.Excel.Application ExcelObj = null;
ExcelObj = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook theWorkbook = ExcelObj.Workbooks.Open(strFileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
Microsoft.Office.Interop.Excel.Sheets sheets = theWorkbook.Worksheets;
Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)sheets.get_Item(1);
Microsoft.Office.Interop.Excel.Range range = worksheet.get_Range("A11", "G21"); // Your requied range here
foreach (Microsoft.Office.Interop.Excel.Range cell in range.Cells)
{
   if(cell.TextToString()=="Yes")
    {
    }
   if(cell.TextToString()=="No")
    {
    }
}

更多信息请点击这里

http://msdn.microsoft.com/en-us/library/4zs9xy29 (v = vs.80) . aspx

将该类添加到您的项目中,并将名称空间更改为您的名称空间,并开始使用它来创建您想要的着色设置

对于您的YES/NO检测,您可以执行以下操作:

        Microsoft.Office.Interop.Excel.Range range = myworksheet.UsedRange;
        //Start iterating from 1 not zero, 1 is the first row after notation of the current coloumn
        for (int i = 1; i <= range.Rows.Count; i++)
        {
            Microsoft.Office.Interop.Excel.Range myrange = myworksheet.get_Range(/*your column letter, ex: "A" or "B"*/ + i.ToString(), System.Reflection.Missing.Value);
            string temp = myrange.Text;
            if(temp.Contains("YES"))
            {
                //Do your YES logic
            }
            else if(temp.Contains("NO"))
            {
                //Do your No Logic
            }
        }

对于cell的Value检查,您可以使用Sherif Mahar Eaid建议的类,当我使用VBA查找excel单元格时,我使用的东西看起来更像这样

这是VB脚本。

if (Range("A1").Value = "DesiredString") Then Code End If

我几乎可以肯定,对于单元格对象,c#上有一个值get方法,对于颜色,我认为

YourRange.Font.Color = System.Drawing.Color.Black.ToArgb();

将工作…