导出带有颜色和其他详细信息的Excel行

时间:2016-01-25 08:56:03

标签: c# visual-studio-2012 export-to-excel

我有一个特殊格式的Excel文件。有些细胞有颜色,每种颜色都有特殊用途。现在我想知道如何将这个Excel文件中的一行导出到具有这些颜色的数据网格视图......

excel file view

使用以下代码我可以读取单元格,但只是字符串,而不是颜色...

 string str;
 int rCnt = 0;
 int cCnt = 0;
 Workbook xlWorkBook;
 Worksheet xlWorkSheet;
 Range range;
 object misValue = System.Reflection.Missing.Value;
 xlWorkBook = xlApp.Workbooks.Open("myFile.xls", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
 xlWorkSheet = (Worksheet)xlWorkBook.Worksheets.get_Item(23);
 range = xlWorkSheet.UsedRange;

 for (rCnt=1;rCnt <= range.Rows.Count; rCnt++)
   {
       for(cCnt = 1; cCnt <= range.Columns.Count; cCnt++)
          {
               str = (range.Cells[rCnt, cCnt] as Range).Value2 + "";
               MessageBox.Show(str);
          }
   }

导出Excel行的地方(datagridview,textbox!等)并不重要,它应该可以正常工作。 :)如何在导出中获取单元格颜色?

1 个答案:

答案 0 :(得分:0)

我明白了......

我可以通过以下代码获取Excel文件的单元格颜色:

int colorNumber = System.Convert.ToInt32((range.Cells[cCnt, rCnt] as Range).Interior.Color);
Color color = System.Drawing.ColorTranslator.FromOle(colorNumber);

然后将此颜色放在数据网格视图的单元格中:

 dataGridView1.Rows[0].Cells[1].Style.BackColor =color; (cell[0] of row[0] for example
 dataGridView1.Rows[0].Cells[1].Value = (range.Cells[cCnt, rCnt] as Range).Value2;