Cách đặt nền của một số ô trong một hàng (hoặc toàn bộ hàng) trong OpenXml?Làm cách nào để đặt nền của ô?
Sau khi đọc một số bài viết:
tôi vẫn không thể làm cho nó làm việc.
Tác vụ của tôi thực sự ở cái nhìn đầu tiên có vẻ hơi dễ dàng hơn và hơi khác so với những gì được viết trong các bài viết đó. Các hướng dẫn đã đề cập chủ yếu cho thấy cách tạo tài liệu mới và tạo kiểu cho nó. Trong khi tôi cần thay đổi kiểu dáng của kiểu hiện có.
Tức là, tôi hiện có tài liệu xlsx (mẫu báo cáo). Tôi điền báo cáo với các giá trị cần thiết (được quản lý để làm điều đó nhờ vào SO open xml excel read cell value và MSDN Working with sheets (Open XML SDK)). Nhưng tiếp theo, tôi cần đánh dấu một vài hàng với nền màu đỏ.
Tôi không chắc liệu để sử dụng CellStyle
cũng không nếu tôi nên sử dụng CellFormat
hay cái gì khác ... Đây là những gì tôi đã đứng dậy đến nay:
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();
Thật sự tôi sẽ đánh giá rất cao một điốt phát quang dùng hơn ví dụ trọng lượng và dễ dàng về cách tạo kiểu, ví dụ: ô A20
hoặc dải từ A20
đến J20
. Hoặc có thể là một liên kết đến một số hướng dẫn liên tiếp hơn.