OpenXmlで行内(または行全体)の複数のセルの背景を設定する方法は?
いくつかの記事を読んだ後:
私はまだそれを機能させることができません。
私の仕事は実際には一見簡単に見え、それらの記事に書かれていることとは少し異なります。前述のチュートリアルでは、主に新しいドキュメントを作成してスタイルを設定する方法を示しています。既存のスタイリングを変更する必要がありますが。
つまり、既存のxlsxドキュメント (レポート テンプレート) があります。レポートに必要な値を入力します ( SO open xml Excel read cell valueとMSDN Working with sheets (Open XML SDK)のおかげで管理できました)。しかし次に、たとえば赤い背景でいくつかの行をマークする必要があります。
使用するかどうか、使用する必要があるかどうか、または何か他のものを使用するかどうかはわかりません...これが私が今得たものCellStyle
です:CellFormat
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();
A20
実際には、セルや範囲などのスタイルを設定する方法の、より軽量で簡単な例を非常に高く評価しA20
ていJ20
ます。または、おそらく、より連続したチュートリアルへのリンクです。