我有一个特殊格式的Excel文件。有些细胞有颜色,每种颜色都有特殊用途。现在我想知道如何将这个Excel文件中的一行导出到具有这些颜色的数据网格视图......
使用以下代码我可以读取单元格,但只是字符串,而不是颜色...
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!等)并不重要,它应该可以正常工作。 :)如何在导出中获取单元格颜色?
答案 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;