Jak ustawić tło kilku komórek w wierszu (lub całego wiersza) w OpenXML?Jak ustawić tło komórek?
Po przeczytaniu kilku artykułów:
Wciąż nie mogę tego dokonać.
Moje zadanie na pierwszy rzut oka wydaje się nieco łatwiejsze i trochę inne od tego, co jest napisane w tych artykułach. Wspomniane tutoriale głównie pokazują, jak utworzyć nowy dokument i nadać mu styl. Chociaż muszę zmienić stylizację istniejącego.
Oznacza to, że mam istniejący dokument xlsx (szablon raportu). Wypełniam raport niezbędnymi wartościami (udało mi się to zrobić dzięki SO open xml excel read cell value i MSDN Working with sheets (Open XML SDK)). Ale potem muszę zaznaczyć kilka rzędów na, powiedzmy, czerwonym tle.
jestem pewien, czy nie używać CellStyle
ani czy powinno się używać CellFormat
lub coś innego ... To jest to, co mam do tej pory:
SpreadsheetDocument doc = SpreadsheetDocument.Open("ole.xlsx", true);
Sheet sheet = (Sheet)doc.WorkbookPart
.Workbook
.Sheets
.FirstOrDefault();
WorksheetPart worksheetPart = (WorksheetPart)doc.WorkbookPart
.GetPartById(sheet.Id);
Worksheet worksheet = worksheetPart.Worksheet;
CellStyle cs = new CellStyle();
cs.Name = StringValue.FromString("Normal");
cs.FormatId = 0;
cs.BuiltinId = 0;
//where are the style values?
WorkbookStylesPart wbsp = doc.WorkbookPart
.GetPartsOfType<WorkbookStylesPart>()
.FirstOrDefault();
wbsp.Stylesheet.CellStyles.Append(cs);
wbsp.Stylesheet.Save();
Cell cell = GetCell(worksheet, "A", 20);
cell.StyleIndex = 1U;//get the new cellstyle index somehow
doc.Close();
Właściwie chciałbym wdzięczni bardziej światło- waga i łatwy przykład stylu, powiedzmy, komórka A20
lub zakres od A20
do J20
. Lub prawdopodobnie link do kilku kolejnych samouczków.