Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 为什么我的字体和背景(前景)着色在这里不起作用(Aspose单元格)?_Excel_Aspose_Aspose Cells_Background Foreground - Fatal编程技术网

Excel 为什么我的字体和背景(前景)着色在这里不起作用(Aspose单元格)?

Excel 为什么我的字体和背景(前景)着色在这里不起作用(Aspose单元格)?,excel,aspose,aspose-cells,background-foreground,Excel,Aspose,Aspose Cells,Background Foreground,在我的工作表的两个地方,我需要有白色字体和黑色背景的单元格。在一个位置(标题行),它可以工作;在另一个(日期值)中,它没有,我也看不出我所做的改变会导致此失败 以下是正在工作的代码(针对标题行): 因此,非工作代码中的不同之处(可能很重要)在于它使用了一个StyleFlag(因为它需要设置日期格式): …当然,SetStyle将标志作为第二个参数(代码的工作位不需要标志,因为它没有做任何花哨的事情) 正如您在下面所看到的,相关单元格中没有日期(E4);它从一个还没有出现在纸上的地方抓到它。但事实

在我的工作表的两个地方,我需要有白色字体和黑色背景的单元格。在一个位置(标题行),它可以工作;在另一个(日期值)中,它没有,我也看不出我所做的改变会导致此失败

以下是正在工作的代码(针对标题行):

因此,非工作代码中的不同之处(可能很重要)在于它使用了一个StyleFlag(因为它需要设置日期格式):

…当然,SetStyle将标志作为第二个参数(代码的工作位不需要标志,因为它没有做任何花哨的事情)

正如您在下面所看到的,相关单元格中没有日期(E4);它从一个还没有出现在纸上的地方抓到它。但事实上,字体是黑色而不是白色,背景(Aspose称为前景)是白色而不是黑色


那么为什么着色不起作用呢?要使其在单元格E4中工作,我需要做什么或做什么更改?

我认为您需要启用相关的StyleFlag选项,以便对单元格应用正确的格式设置。请参见更新的代码段以供参考: 例如 示例代码:

CellsFactory cfDate = new CellsFactory();
Cell dateCell = pricePushSheet.Cells[3, 4];
Style styleDate = cfDate.CreateStyle();
dateCell.PutValue(pricePushSheet.Cells[7, 1]);
styleDate.Font.IsBold = true;
styleDate.HorizontalAlignment = TextAlignmentType.Center;
styleDate.Font.Color = Color.White;
styleDate.ForegroundColor = Color.Black;
styleDate.Pattern = BackgroundType.Solid;
styleDate.Custom = "mm/dd/yyyy";
StyleFlag flag2 = new StyleFlag();
flag2.NumberFormat = true;
flag2.CellShading = true;
flag2.HorizontalAlignment = true;
flag2.FontColor = true;
flag2.FontBold = true;
dateCell.SetStyle(styleDate, flag2);

我在Aspose担任支持开发人员/布道者。

我认为您需要启用相关的StyleFlag选项,以便对单元格应用正确的格式。请参见更新的代码段以供参考: 例如 示例代码:

CellsFactory cfDate = new CellsFactory();
Cell dateCell = pricePushSheet.Cells[3, 4];
Style styleDate = cfDate.CreateStyle();
dateCell.PutValue(pricePushSheet.Cells[7, 1]);
styleDate.Font.IsBold = true;
styleDate.HorizontalAlignment = TextAlignmentType.Center;
styleDate.Font.Color = Color.White;
styleDate.ForegroundColor = Color.Black;
styleDate.Pattern = BackgroundType.Solid;
styleDate.Custom = "mm/dd/yyyy";
StyleFlag flag2 = new StyleFlag();
flag2.NumberFormat = true;
flag2.CellShading = true;
flag2.HorizontalAlignment = true;
flag2.FontColor = true;
flag2.FontBold = true;
dateCell.SetStyle(styleDate, flag2);

我在Aspose担任支持开发者/布道者。

请注意,由于您希望将单元格着色和字体颜色应用于相关单元格,因此您需要将相应的StyleFlag属性设置为true,以便上述样式方面能够生效。请检查下面生成预期结果的代码

var workbook = new Workbook(dir + "book1.xlsx");
var pricePushSheet = workbook.Worksheets[0];
var cfDate = new CellsFactory();
var dateCell = pricePushSheet.Cells[3, 4];
var styleDate = cfDate.CreateStyle();
dateCell.PutValue(pricePushSheet.Cells[7, 1].Value);
var flag2 = new StyleFlag();
flag2.NumberFormat = true;
flag2.CellShading = true;
flag2.Font = true;
styleDate.Font.IsBold = true;
styleDate.HorizontalAlignment = TextAlignmentType.Center;
styleDate.Font.Color = Color.White;
styleDate.ForegroundColor = Color.Black;
styleDate.Pattern = Aspose.Cells.BackgroundType.Solid;
styleDate.Custom = "mm/dd/yyyy";
dateCell.SetStyle(styleDate, flag2);


注意:我在Aspose担任开发人员宣传员。

请注意,由于您希望将单元格着色和字体颜色应用于相关单元格,因此需要将相应的StyleFlag属性设置为true,以便上述样式方面能够生效。请检查下面生成预期结果的代码

var workbook = new Workbook(dir + "book1.xlsx");
var pricePushSheet = workbook.Worksheets[0];
var cfDate = new CellsFactory();
var dateCell = pricePushSheet.Cells[3, 4];
var styleDate = cfDate.CreateStyle();
dateCell.PutValue(pricePushSheet.Cells[7, 1].Value);
var flag2 = new StyleFlag();
flag2.NumberFormat = true;
flag2.CellShading = true;
flag2.Font = true;
styleDate.Font.IsBold = true;
styleDate.HorizontalAlignment = TextAlignmentType.Center;
styleDate.Font.Color = Color.White;
styleDate.ForegroundColor = Color.Black;
styleDate.Pattern = Aspose.Cells.BackgroundType.Solid;
styleDate.Custom = "mm/dd/yyyy";
dateCell.SetStyle(styleDate, flag2);


注:我在Aspose担任开发人员宣传员。

flag2.Font=true;“是什么意思?它指定了所有与字体相关的选项(字体下的属性(sub),例如IsBold、Color等)为“true”。flag2.Font=true;“是什么意思或做什么?它指定了所有与字体相关的选项(属性(sub))在字体(例如,粗体、颜色等)下设置为“真”。
var workbook = new Workbook(dir + "book1.xlsx");
var pricePushSheet = workbook.Worksheets[0];
var cfDate = new CellsFactory();
var dateCell = pricePushSheet.Cells[3, 4];
var styleDate = cfDate.CreateStyle();
dateCell.PutValue(pricePushSheet.Cells[7, 1].Value);
var flag2 = new StyleFlag();
flag2.NumberFormat = true;
flag2.CellShading = true;
flag2.Font = true;
styleDate.Font.IsBold = true;
styleDate.HorizontalAlignment = TextAlignmentType.Center;
styleDate.Font.Color = Color.White;
styleDate.ForegroundColor = Color.Black;
styleDate.Pattern = Aspose.Cells.BackgroundType.Solid;
styleDate.Custom = "mm/dd/yyyy";
dateCell.SetStyle(styleDate, flag2);