我使用的是ExcelApplication,而不是ExcelTemplate - 所以我在程序上做了一些格式化,所以它只是一个超级简单的excel表 - 但是,我认为我的最终用户想要自己做格式化所以我'保持清醒。
通过测量高度,我的标题行比其他行大:
foreach (Worksheet ws in book)
{
ws.GetRowProperties(0).Height = 25; // this works
ws.GetRowProperties(0).Style.VerticalAlignment = Style.VAlign.Center; // this has no effect
}
到目前为止,我已尝试以几种不同的方式应用细胞比对,我似乎无法获得最终结果。有什么想法吗?
提前致谢。
答案 0 :(得分:0)
我已经通过创建Area
然后将样式应用于所述区域来解决这个问题:
Area headerArea;
Style headerAreaStyle = book.CreateStyle();
headerAreaStyle.VerticalAlignment = Style.VAlign.Center;
headerAreaStyle.HorizontalAlignment = Style.HAlign.Center;
headerAreaStyle.Font.Size = 13;
foreach (Worksheet ws in book)
{
switch (ws.Name)
{
case ("First Sheet"):
headerArea = ws.CreateArea(0, 0, 1, 2);
headerArea.SetRowHeight(0, 20);
headerArea.ApplyStyle(headerAreaStyle);
break;
case ("Second Sheet"):
headerArea = ws.CreateArea(0, 0, 1, 5);
headerArea.SetRowHeight(0, 20);
headerArea.ApplyStyle(headerAreaStyle);
break;
case ("Third Sheet"):
headerArea = ws.CreateArea(0, 0, 1, 3);
headerArea.SetRowHeight(0, 20);
headerArea.ApplyStyle(headerAreaStyle);
break;
case ("Fourth Sheet"):
headerArea = ws.CreateArea(0, 0, 1, 3);
headerArea.SetRowHeight(0, 20);
headerArea.ApplyStyle(headerAreaStyle);
break;
default:
break;
}
}
我确定还有其他 - 更好 - 的方法可以做到这一点,但它对我来说效果很好。
请注意,此处的Switch
与除我之外的任何人完全无关。有一些方法可以以更动态的方式进行,但这些输出在列数方面是静态的。