我正在用excel处理WPF应用程序。在该应用程序中,我有一个列名为Bulk。该列包含两个文本选项,如YES和NO。现在,我需要将字体表示为是选项的红色和否选项的普通黑色。我得到了那个特定列的范围。但我不知道如何分别获得是选项和否选项,而且我还需要根据需要对选项进行着色。
这里我提到了我的代码:
foreach(Range Value in range.cells)
{
???????
???????
}任何人请告诉我这个问题的解决方案。我应该如何继续这个过程。提前谢谢。
发布于 2011-11-08 17:38:52
将此class添加到您的项目中,并将名称空间更改为您的名称空间,然后开始使用它来创建所需的颜色设置
就您的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
}
}发布于 2011-11-08 18:13:32
尝尝这个
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
发布于 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();
会起作用..。
https://stackoverflow.com/questions/8048264
复制相似问题