首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用C#获取一系列Excel单元格中的特定文本

使用C#获取一系列Excel单元格中的特定文本
EN

Stack Overflow用户
提问于 2011-11-08 17:26:06
回答 3查看 7.8K关注 0票数 2

我正在用excel处理WPF应用程序。在该应用程序中,我有一个列名为Bulk。该列包含两个文本选项,如YES和NO。现在,我需要将字体表示为是选项的红色和否选项的普通黑色。我得到了那个特定列的范围。但我不知道如何分别获得是选项和否选项,而且我还需要根据需要对选项进行着色。

这里我提到了我的代码:

代码语言:javascript
复制
foreach(Range Value in range.cells)
{

???????
???????
}

任何人请告诉我这个问题的解决方案。我应该如何继续这个过程。提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-08 17:38:52

将此class添加到您的项目中,并将名称空间更改为您的名称空间,然后开始使用它来创建所需的颜色设置

就您的YES/NO检测而言,您可以执行以下操作:

代码语言:javascript
复制
        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
            }
        }
票数 1
EN

Stack Overflow用户

发布于 2011-11-08 18:13:32

尝尝这个

代码语言:javascript
复制
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

票数 2
EN

Stack Overflow用户

发布于 2011-11-08 18:05:58

至于对单元格的值检查,您可以使用谢里夫·马哈尔·艾德建议的类,当我使用VBA查找excel单元格时,我使用的内容类似于

‘这是VB脚本。

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

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

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

会起作用..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8048264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档