我正在尝试在 VS 2010 WinForms 应用程序中使用 C# 将数据从 MS Excel 工作表导出到数据表。
我希望根据文本前色从 Excel 中导出某些行,例如文本颜色为黑色、绿色和红色。如果文本颜色为绿色,那么我想将该行排除在导出之外。
我怎样才能做到这一点?
我正在尝试在 VS 2010 WinForms 应用程序中使用 C# 将数据从 MS Excel 工作表导出到数据表。
我希望根据文本前色从 Excel 中导出某些行,例如文本颜色为黑色、绿色和红色。如果文本颜色为绿色,那么我想将该行排除在导出之外。
我怎样才能做到这一点?
您应该在 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.
}
}