【问题标题】:how to format excel sheet according to property value of an object?如何根据对象的属性值格式化excel表?
【发布时间】:2012-12-31 16:47:30
【问题描述】:

我需要在 c# asp.net 中创建和下载一个 Excel 表格。我用写范围。因为它很快。但我需要格式化excel表。根据用户对象的属性(用户颜色),我需要为行着色。但是当写入范围时,我该怎么做?

我正在使用此代码编写
var startCell = (Range)sheet.Cells[2, 1]; var endCell = 新对象(); endCell = (Range)sheet.Cells[(usersList.Count + 2), noofcolums]; var writeRange = sheet.get_Range(startCell, endCell); writeRange.Value2 = 数据;

数据是一个二维对象。它是由用户对象创建的。

【问题讨论】:

    标签: c# .net excel


    【解决方案1】:

    【讨论】:

      【解决方案2】:

      我找不到任何方法来使用 Object 属性以范围写入方式映射行颜色。我需要一个单元一个单元地写。但它很慢。所以我使用创建 html 文件(html 表)并将其转换为 excel 文档。它也不慢。非常感谢大家的回复

      【讨论】:

        【解决方案3】:

        作为附加评论:请勿在服务器环境中使用 Excel。它很慢,而且 Excel 可能随时产生错误窗口,从而导致挂起。这不能以干净的方式规避 - 即使微软同意并且不支持服务器模型中的办公室。 你可以试试 epplus,一个免费的 excel 读/写库。它速度快,支持格式化,并且比 excel interop 更易于编程。

        【讨论】:

        • 但我需要支持 2003。epplus 支持 2007 excel
        • 还有一些其他的包,请搜索stackoverflow的例子。 Aspose 细胞可能很好,但您必须为此付费。使用 excel 可能是最后的选择......作为一个问题:你必须支持旧的 2003 格式吗?
        • 这是我的客户要求
        【解决方案4】:

        在 Excel 中为任意行着色

        oRange.get_Range("A1","X1").Interior.Color = System.Drawing.ColorTranslator.ToWin32(Color.Orange);

        希望对你有帮助

        【讨论】:

        • 感谢您的回复。但我需要知道如何获得正确的行并且只为它们着色。有没有办法根据对象进行查询。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-03-27
        • 2019-03-09
        • 1970-01-01
        • 2016-07-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多