Есть ли способ / способ получить цвет текста значения ячейки? - PullRequest
1 голос
/ 22 мая 2019

Мне нужно извлечь данные из файла Excel с OpenXML с C # и отобразить их в dataGridView.

Я извлекаю все нужные мне значения, но мне нужно также получить цвет текста этих значений, чтобы иметь возможность отображать их такими, какие они есть в файле.

Я смотрел в разных темах, как изменить цвет текста, и пытался использовать один и тот же способ, но я не могу найти способ получить все цвета моих данных.

Я пытался получить Цвет ячейки, иногда у меня есть значение Rgb, но в большинстве случаев у меня просто есть индекс цвета или ничего.

Я пытался заглянуть в XML-файлы файла Excel, но не смог найти способ связать все

private string GetTextColor(Cell cell, Stylesheet stylesheet)
{
        CellFormats cellFormats = stylesheet.CellFormats;
        DocumentFormat.OpenXml.Spreadsheet.CellFormat cellFormat = cellFormats.Descendants<DocumentFormat.OpenXml.Spreadsheet.CellFormat>().ElementAt(Convert.ToInt32(cell.StyleIndex.Value));
        var textColor = stylesheet.Descendants<DocumentFormat.OpenXml.Spreadsheet.Color>().ElementAt(Convert.ToInt32(cellFormat.FillId.Value));
        return textColor.Rgb; //Null most of the case
}

Я не знаю, есть ли другой способ получить цвет текста, я пробовал много методов, но не могу найти один ...

Заранее спасибо за ваше время!

1 Ответ

0 голосов
/ 22 мая 2019

Это работало для меня в прошлом:

int colorNumber = System.Convert.ToInt32(((Range) cell.Interior.Color);
Color color = System.Drawing.ColorTranslator.FromOle(colorNumber);
...