标题和正文主题字体
当区域设置更改时,默认字体将自动更改。
如果默认字体更改,行高和列宽也会更改,甚至可能会搅乱页面布局。
是什么导致默认字体更改?
如果设置了 Excel 主题字体,Excel 将根据当前语言环境自动在不同字体之间切换。
在Excel中设置标题和正文主题字体
在Excel中,选择“主页”选项卡,点击字体下拉框,您会看到带有两种主题字体:Calibri Light (标题) 和 Calibri (正文) 的“主题字体”,在英文区域设置中显示在顶部。
如果选择了主题字体,不同区域的字体名称会显示不同。 如果不希望字体在不同区域自动更改,请不要选择这两种主题字体。
程序化更改标题和正文字体
利用Aspose.Cells for .Net,我们可以检查默认字体是否为主题字体,或者使用Font.SchemeType属性设置主题字体。
以下示例代码展示了如何操纵主题字体。
Workbook workbook = new Workbook("Book1.xlsx"); | |
Style defaultStyle = workbook.DefaultStyle; | |
FontSchemeType schemeType = defaultStyle.Font.SchemeType; | |
if (schemeType == FontSchemeType.Major //headings | |
|| schemeType == FontSchemeType.Minor //body | |
) | |
{ | |
Console.WriteLine("It's theme font"); | |
} | |
//Change theme font to mormal font | |
defaultStyle.Font.SchemeType = FontSchemeType.None; | |
workbook.DefaultStyle = defaultStyle; |
动态程序化获取本地主题字体
有时,我们的服务器和用户的机器不在同一区域。我们如何获取用户希望进行文件处理的相同字体?
在加载文件前,我们需要使用LoadOptions.Region属性设置系统区域设置。
以下示例代码展示了如何获取本地主题字体。
//Instantiate a new LoadOptions. | |
LoadOptions options = new LoadOptions(); | |
//Sets the customer's region | |
options.Region = CountryCode.Japan; | |
// Instantiate a new Workbook. | |
Workbook workbook = new Workbook("Book1.xlsx", options); | |
Style defaultStyle = workbook.DefaultStyle; | |
// Gets customer's local font. | |
string localFontName = defaultStyle.Font.Name; |