【问题标题】:How can I change cell style in an Excel file with ExcelLibrary?如何使用 ExcelLibrary 更改 Excel 文件中的单元格样式?
【发布时间】:2018-02-21 20:03:39
【问题描述】:

有人可以帮我ExcelLibrary吗? 我想设置单元格背景和字体颜色,但我不知道该怎么做。 我尝试访问单元格样式,但没有找到。

有人有什么想法吗?

【问题讨论】:

  • 使用 ExcelLibrary 重要吗?您可以查看 NPOI 作为替代方案,我对 ExcelLibrary 不太熟悉,但 NPOI 可能会功能更丰富,而且这很容易做到。

标签: c# excel


【解决方案1】:

我已经为您查看了这个库并发现了以下内容(警告 - 这是个坏消息!):

  1. 没有允许访问单元格颜色的ExcelLibrary 的已发布版本。

  2. 在未发布的源代码中,新的CellStyle 类中有一个BackColor 属性,但是没有表示前景色的属性。

  3. 保存工作簿时不会保留 BackColor 属性。仅用于在加载工作簿时设置单元格的背景颜色。

如果需要使用颜色,请使用NPOI(@jamietre 推荐)。然后,您可以像这样设置前景色和背景色:

HSSFCellStyle style1 = hssfworkbook.CreateCellStyle();

// cell background
style1.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.BLUE.index;
style1.FillPattern = HSSFCellStyle.SOLID_FOREGROUND;

// font color
HSSFFont font1 = hssfworkbook.CreateFont();
font1.Color = NPOI.HSSF.Util.HSSFColor.YELLOW.index;
style1.SetFont(font1);

cell.CellStyle = style1;

【讨论】:

    【解决方案2】:

    我知道您可能与 ExcelLibrary 相关联,但您是否查看过 EPPlus? http://epplus.codeplex.com/

    它将完全按照您的要求进行 - 轻松(并且更多)

    【讨论】:

    • EPPlus 不是 ExcelLibrary 的替代品。 ExcelLibrary 仅处理 XLS 格式。 EPPlus 仅处理 XLSX - 因此不能替代。
    • 很好,克里斯——我没有考虑到他们可能会因为某种原因被旧的二进制 Excel 格式卡住。如果是这种情况,它必须是某种形式的互操作库。在这种情况下,NPOI 将是最佳选择(正如 Alex 所说)。
    【解决方案3】:

    我没有对此进行测试,但您的单元格似乎有一个名为“样式”的属性,它定义了单元格样式。您可以在此处设置特定单元格的背景颜色。

    worksheet.Cells[0,0].Style.BackColor = Color.CornflowerBlue;
    

    【讨论】:

    • 我已经测试过了,不幸的是它不起作用。 :(请查看我的答案了解详情。
    • 嗯,我只是查看了 googlecode repo 上的源代码。在那里你可以找到风格的道具:Excel Library Repo 在第 120 行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-16
    • 2011-11-06
    • 2018-05-10
    • 1970-01-01
    • 2011-12-01
    相关资源
    最近更新 更多