gpt4 book ai didi

c# - EPPlus:如何设置合并单元格的样式?

转载 作者:太空狗 更新时间:2023-10-29 22:22:41 25 4
gpt4 key购买 nike

编辑:这些示例都应该有效。我的问题实际上与 epplus 无关,此代码以及标记的答案适用于样式化合并单元格。

我希望能够为合并的单元格设置样式,但是,我对其设置样式的尝试没有任何效果。这是我合并单元格的方式:

WorkSheet.Cells["A1:K1"].Merge = true;

以下是我尝试在此合并单元格上设置背景和字体颜色的方法:

WorkSheet.Cells["A1:K1"].Style.Fill.PatternType = ExcelFillStyle.Solid;
WorkSheet.Cells["A1:K1"].Style.Fill.BackgroundColor.SetColor(Color.Black);
WorkSheet.Cells["A1:K1"].Style.Font.Color.SetColor(Color.Red);

我试过的另一种方式:

WorkSheet.Cells["A1"].Style.Fill.PatternType = ExcelFillStyle.Solid;
WorkSheet.Cells["A1"].Style.Fill.BackgroundColor.SetColor(Color.Black);
WorkSheet.Cells["A1"].Style.Font.Color.SetColor(Color.Red);

我尝试过的另一种方式:

WorkSheet.Cells[1, 1].Style.Fill.PatternType = ExcelFillStyle.Solid;
WorkSheet.Cells[1, 1].Style.Fill.BackgroundColor.SetColor(Color.Black);
WorkSheet.Cells[1, 1].Style.Font.Color.SetColor(Color.Red);

我在这里错过了什么?我可以毫无困难地为其他未合并的单元格设置样式,但我合并的单元格不会改变。

最佳答案

我无法重现问题..下面是样式合并单元格的示例。看看你能不能找到你做错了什么。您所要做的就是运行它。

如果您有任何疑问,请告诉我。

    var stream = new MemoryStream();

// print header
using (var package = new ExcelPackage(stream))
{
// add a new worksheet to the empty workbook
var worksheet = package.Workbook.Worksheets.Add("testsheet");
for(var i = 0; i < 10; i++)
worksheet.Cells[i + 1, 1].Value = i.ToString();

worksheet.Cells["A1:A3"].Merge = true;
worksheet.Cells["A1:A3"].Style.VerticalAlignment = ExcelVerticalAlignment.Top;
worksheet.Cells["A1:A3"].Style.Border.Top.Style = ExcelBorderStyle.Thin;
worksheet.Cells["A1:A3"].Style.Border.Left.Style = ExcelBorderStyle.Thin;
worksheet.Cells["A1:A3"].Style.Border.Right.Style = ExcelBorderStyle.Thin;
worksheet.Cells["A1:A3"].Style.Border.Bottom.Style = ExcelBorderStyle.Thin;
worksheet.Cells["A1:A3"].Style.Fill.PatternType = ExcelFillStyle.Solid;
worksheet.Cells["A1:A3"].Style.Fill.BackgroundColor.SetColor(System.Drawing.ColorTranslator.FromHtml("#f0f3f5"));

package.Save();
}

stream.Seek(0, SeekOrigin.Begin);

using (Stream file = File.Open("sample.xlsx", FileMode.Create))
{
var buffer = new byte[8 * 1024];
int len;
while ((len = stream.Read(buffer, 0, buffer.Length)) > 0)
file.Write(buffer, 0, len);
}

关于c# - EPPlus:如何设置合并单元格的样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20551404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com