Excel 添加红绿灯

Excel add traffic light

我基于 DataSet 创建了一个 Excel 文件,我想添加一个带有红绿灯的列。

红绿灯:

int trafficCollor = 1;
if (trafficCollor == 1)
{
    DataRow NR = DT.NewRow();
    NR[0] = ""; //add string with the code for the Excel traffic light yellow
}

if (trafficCollor < 1)
{
    DataRow NR = DT.NewRow();
    NR[0] = ""; //add string with the code for the Excel traffic light green
}

if (trafficCollor > 1)
{
    DataRow NR = DT.NewRow();
    NR[0] = ""; //add string with the code for the Excel traffic light red
}

Excel 的创建方式:

//Create an Excel application instance
Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook excelWorkBook = excelApp.Application.Workbooks.Add();
Microsoft.Office.Interop.Excel._Worksheet worksheet = null;
excelApp.Visible = false;
worksheet = excelWorkBook.ActiveSheet;

//set headers
for (int i = 1; i < DGV.Columns.Count + 1; i++)
{
     worksheet.Cells[1, i] = DGV.Columns[i - 1].HeaderText;
 }

 createList(worksheet, DGV);

 //Create excel with the choosen name
 Worksheet sheet1 = excelWorkBook.Worksheets[1];
 worksheet.Name = fileName;

如果您对存档此类内容有任何建议,请告诉我!

这是我快速编写的示例代码,用于演示在条件格式中使用红绿灯。请根据您的需要进行更改。

using System;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;

Namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        Public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Excel.Application xlexcel;
            Excel.Workbook xlWorkBook;
            Excel.Worksheet xlWorkSheet;

            object misValue = System.Reflection.Missing.Value;
            xlexcel = new Excel.Application();
            xlWorkBook = xlexcel.Workbooks.Add(misValue);
            xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
            xlexcel.Visible = true;

            //add data
            xlWorkSheet.Cells[1, 1] = 1;
            xlWorkSheet.Cells[2, 1] = 2;
            xlWorkSheet.Cells[3, 1] = 3;
            xlWorkSheet.Cells[4, 1] = 4;

            Excel.Range MyRange = xlWorkSheet.get_Range("A1", "A4");

            MyRange.FormatConditions.AddIconSetCondition();
            MyRange.FormatConditions.Item (MyRange.FormatConditions.Count).SetFirstPriority();
            MyRange.FormatConditions.Item(1).ReverseOrder = false;
            MyRange.FormatConditions.Item(1).ShowIconOnly = false;
            MyRange.FormatConditions.Item(1).IconSet = xlWorkBook.IconSets[Excel.XlIconSet.xl3TrafficLights2];

            MyRange.FormatConditions.Item(1).IconCriteria(2).Type = Excel.XlConditionValueTypes.xlConditionValuePercent;
            MyRange.FormatConditions.Item(1).IconCriteria(2).Value = 33;
            MyRange.FormatConditions.Item(1).IconCriteria(2).Operator = 7;

            MyRange.FormatConditions.Item(1).IconCriteria(3).Type = Excel.XlConditionValueTypes.xlConditionValuePercent;
            MyRange.FormatConditions.Item(1).IconCriteria(3).Value = 67;
            MyRange.FormatConditions.Item(1).IconCriteria(3).Operator = 7;

            // Rest of the code
        }
    }
}

截图