Цвет фона c # interpo

#c# #excel

#c# #excel

Вопрос:

Я использую Visual Studio C # и Microsoft.Office.Interop.Excel не могу получить правильный цвет из ячейки на листе Excel. Мой вопрос: как я могу получить цвет фона из ячейки.

Я попробовал этот код :

 var bachgroundColor = ws.Cells[7, 3].Interior.Color;
  

но результат: System___ComObject

Ответ №1:

Основная проблема взаимодействия заключается в том, что механизм DDE иногда работает нормально. Но часто это влияет на обмен данными, и вы теряете данные без ошибок, предупреждений или исключений.Существует хорошая библиотека под названием EPPlus, которая делает ваши отношения с Excel намного проще и безопаснее. Вы можете найти его на NuGet.

 Color CellColor = sheet.Cells[x, y].Interior.Color;
  

Измените шрифт ячейки и цвет фона

Ответ №2:

Во-первых, вы можете получить значение int для внутреннего цвета. А затем преобразуйте его в тип «Цвет».

Вот демонстрационная версия, на которую вы можете сослаться.

 string strFileName = @"D:test.xls";
object missing = System.Reflection.Missing.Value;
Excel.Application excel = new Excel.Application();
Excel.Workbook workBook = excel.Application.Workbooks.Open(strFileName, missing, true, missing, missing, missing,
missing, missing, missing, true, missing, missing, missing, missing, missing);
Excel.Worksheet worksheet = (Excel.Worksheet)workBook.Sheets[1];

int colorNumber = System.Convert.ToInt32(((Range)worksheet.Cells[1, 2]).Interior.Color);
Color color = System.Drawing.ColorTranslator.FromOle(colorNumber);
//this.BackColor = color;