使用C#中的文本颜色将数据从excel导出到数据表

时间:2012-08-02 10:05:07

标签: c# visual-studio-2010 excel datatable

我正在尝试使用VS 2010 WinForms应用程序中的C#将数据从MS Excel工作表导出到数据表。

我希望根据文本forecolor在Excel中导出一些行,例如文本颜色为黑色,绿色和红色。如果文本颜色为绿色,那么我想将该行排除在外。

请告诉我如何实现这一目标。

1 个答案:

答案 0 :(得分:0)

您应该在Excel中迭代行并在导出之前检查文本颜色。首先打开Excel文件。

            Microsoft.Office.Interop.Excel.Application App = new Microsoft.Office.Interop.Excel.Application();
            App.Visible = false;
            App.WindowState = Excel.XlWindowState.xlMinimized;
            App.ShowStartupDialog = false;

            Excel.Workbook WorkBook = App.Workbooks.Open(File, 0, false, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);

最好先获得正在使用的区域:

Excel.Range Area = worksheet.get_Range("A1", worksheet.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell, Type.Missing));

迭代:

                for (int R = 1; R <= Area.Rows.Count; R++)
                {
                Excel.Range Row = ((Excel.Range)Area[R, "A"]);
                if(Row.Font.Color != Excel.XlRgbColor.rgbGreen)
                {
                   // Get data from the cells and include into a
                   // collection of items that represents data to be exported.
                }
                }