Я использую библиотеку Flexcel и хочу изменить цвет ячейки в таблице (документ Excel).C# Flexcel. Измените цвет фона ячейки. Excell
Как я могу это сделать? Я не могу найти необходимый API. Могу ли я сделать это с помощью Flexcell?
Я использую библиотеку Flexcel и хочу изменить цвет ячейки в таблице (документ Excel).C# Flexcel. Измените цвет фона ячейки. Excell
Как я могу это сделать? Я не могу найти необходимый API. Могу ли я сделать это с помощью Flexcell?
Я не использовал этот API, но если вы не можете найти способ, это то, как вы можете сделать это с C#:
//http://www.mvps.org/dmcritchie/excel/colors.htm
private void setCellColor(Microsoft.Office.Interop.Excel.Range cell, int index)
{
cell.Interior.ColorIndex = index;
}
Вы можете использовать класс TFlxFormat для применение цвет. Использование этого класса Вы можете применить любой желаемый формат.
У меня была такая же проблема, когда я пытался установить цвет фона ячейки. Мне никогда не удавалось установить его напрямую, но то, что мне удалось сделать, это установить FillPattern ячейки, которая фактически устанавливает цвет фона.
Здесь у меня есть частный метод, который устанавливает 4 разных цвета фона, которые я планирую использовать. Обратите внимание: при добавлении стилей вы добавляете их непосредственно в файл Excel. Вот почему я перехожу в excelFile к этому методу, а затем возвращаю excelFile. Вы должны добавить стили в excelFile, прежде чем сможете использовать стили.
private XlsFile SetUpBackgroundColours(XlsFile excelFile)
{
var patternStyle = TFlxPatternStyle.Solid;
TFlxFormat format = excelFile.GetDefaultFormat;
format.FillPattern = new TFlxFillPattern { Pattern = patternStyle, FgColor = Color.Yellow }; //1
format.VAlignment = TVFlxAlignment.top;
format.HAlignment = THFlxAlignment.left;
excelFile.AddFormat(format);
format.FillPattern = new TFlxFillPattern { Pattern = patternStyle, FgColor = Color.LightBlue }; //2
format.VAlignment = TVFlxAlignment.top;
format.HAlignment = THFlxAlignment.left;
excelFile.AddFormat(format);
format.FillPattern = new TFlxFillPattern { Pattern = patternStyle, FgColor = Color.LightGray }; //3
format.VAlignment = TVFlxAlignment.top;
format.HAlignment = THFlxAlignment.left;
excelFile.AddFormat(format);
format.FillPattern = new TFlxFillPattern { Pattern = patternStyle, FgColor = Color.White }; //4
format.VAlignment = TVFlxAlignment.top;
format.HAlignment = THFlxAlignment.left;
excelFile.AddFormat(format);
return excelFile;
}
Это создаст 4 новых стилей, которые можно затем ссылаться с помощью индекса порядка они были добавлены в. Индекс с FLEXCEL начинается с 1.
Итак, когда вы добавляете значения в ваши ячейки, используя метод SetCellValue, вы можете указать индекс стиля, который вы добавили, чтобы изменить цвет фона. Следующий пример показывает, как пример того, как сделать это:
excelFile.SetCellValue(rowNumber, columnNumber, "Some text for the cell", 1)
Где вы видите 1 в качестве последнего значения для метода, этот 1 относится к первому стилю, который я добавил в файл Excel с помощью SetUpBackgroundColours() метод выше.
Если бы я хотел, чтобы моя клетка иметь lighgray цвет, который я использовал бы 3 вместо 1 следующим образом:
excelFile.SetCellValue(rowNumber, columnNumber, "Some text for the cell", 3)
Некоторые дополнительный код, который показывает вызов SetUpBackgroundColours:
var excelFile = new XlsFile(true);
excelFile.NewFile(someList.Count() + 1, TExcelFileFormat.v2007);
var sheetIndex = 0;
excelFile = SetUpBackgroundColours(excelFile);
excelFile.SetCellValue(1, 1, "Some text for the cell A1", 1) //cell colour will be yellow
excelFile.SetCellValue(2, 2, "Some text for the cell B1", 2) //cell colour will be lightblue
Этот ответ хорошо, ключевой проблемой для меня было то, что для установки «фонового» цвета вам действительно нужен объект TFlxFormat, FillPattern.Pattern - TFlxPatternStyle.Solid, а затем немного смутно вам нужно установить свойство FgColor на цвет, который вы хотите для фон. Разработчик объясняет это здесь: [bgColor vs fgColor] (http://www.tmssoftware.com/SITE/forum/forum_posts.asp?TID=5743&KW=background&PID=21596&title=bgcolor-vs-fgcolor#21596) – Shaun