2016-07-29 10 views
7

Я получил этот код, чтобы попытаться стиль строки заголовка:..Почему EPPlus говорит мне, что я не могу установить цвет, если шаблон не задан, когда я установил PatternType?

worksheet.Cells["A32:D32"].Style.Font.Name = "Georgia"; 
worksheet.Cells["A32:D32"].Style.Font.Bold = true; 
worksheet.Cells["A32:D32"].Style.Font.Size = 16; 
worksheet.Cells["A32:D32"].Style.Fill.PatternType = ExcelFillStyle.Solid; 
worksheet.Cells["A32:D33"].Style.Fill.BackgroundColor.SetColor(Color.CornflowerBlue); 

Это не будет работать на последней строке выше с "System.ArgumentException было необработанное .message = Не удается установить цвет при patterntype не установлен Источник = EPPlus «

В чем может быть настоящая проблема? I am делать то, что он claimes Я не, не так ли?

Для больше контекста:

worksheet.Cells["A32"].LoadFromCollection(bookDataList, true); 
// style header row 
worksheet.Cells["A32:D32"].Style.Font.Name = "Georgia"; 
worksheet.Cells["A32:D32"].Style.Font.Bold = true; 
worksheet.Cells["A32:D32"].Style.Font.Size = 16; 
worksheet.Cells["A32:D32"].Style.Fill.PatternType = ExcelFillStyle.Solid; 
worksheet.Cells["A32:D33"].Style.Fill.BackgroundColor.SetColor(Color.CornflowerBlue); 
// style the rest 
worksheet.Cells["A33:D59"].Style.Font.Name = "Candara"; 
worksheet.Cells["A33:D59"].Style.Fill.PatternType = ExcelFillStyle.Solid; 
worksheet.Cells["A33:D59"].Style.Fill.BackgroundColor.SetColor(Color.Cornsilk); 

Обратите внимание, что у меня был «стиль остального» код перед добавлением «строки заголовка стиля» и не столкнулся с этой проблемой. Код точно такой же, как для установки PatternType, а затем BackgroundColor (за исключением используемого цвета и диапазона ячеек, к которому применяется код).

+0

Мне не хватало этой строки: рабочий лист. Цвета ["A32: D32"]. Style.Fill.PatternType = ExcelFillStyle.Solid; – Kadaj

ответ

11

Посмотрите внимательно на две линии:

worksheet.Cells["A32:D32"].Style.Fill.PatternType = ExcelFillStyle.Solid; 
worksheet.Cells["A32:D33"].Style.Fill.BackgroundColor.SetColor(Color.CornflowerBlue); 

Вторая линия D33 вместо D32 так, если D33 еще не установлено, что бы бросить эту ошибку.