从c#创建并写入excel文件

时间:2010-02-11 13:05:24

标签: c# excel c#-3.0

我需要从C#代码创建一个非常简单的excel文件,我看到了以下问题但是混淆了各种选项。任何人都可以指出我这样做的最好和最简单的方法。我需要它也可以在xls以及xlsx上运行。另外,我需要一个公式来根据内容为特定列着色。

4 个答案:

答案 0 :(得分:2)

SpreadsheetGear for .NET可以从C#创建和编写xls和xlsx工作簿,并支持条件格式,可以根据单元格中的值为单元格着色。

如果您想亲自试用,可以查看实时ASP.NET示例here并下载免费试用here

这是用于创建具有0到1000之间的随机数的工作簿的代码,以及用于将值设置为500的背景为蓝色并将文本颜色设置为白色的条件格式。将生成的工作簿加载到Excel(或随SpreadsheetGear试用软件一起安装到SpreadsheetGear for Windows应用程序中)并注意当您按F9重新计算时会发生什么:

using System;
using SpreadsheetGear;

namespace FormatConditions
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create a new empty workbook.
            IWorkbook workbook = Factory.GetWorkbook();
            IRange cells = workbook.Worksheets[0].Cells["A1:A5"];
            // Place formulas resulting in random numbers between 0 and 1000.
            cells.Formula = "=RAND()*1000";
            cells.NumberFormat = "0";
            // Add a format condition to use blue background and white text for numbers >500.
            IFormatCondition fc = cells.FormatConditions.Add(FormatConditionType.CellValue, FormatConditionOperator.Greater, "500", "");
            fc.Interior.Color = System.Drawing.Color.Navy;
            fc.Font.Color = System.Drawing.Color.White;
            // Save to xls and xlsx.
            workbook.SaveAs(@"c:\tmp\FormatConditions.xls", FileFormat.Excel8);
            workbook.SaveAs(@"c:\tmp\FormatConditions.xlsx", FileFormat.OpenXMLWorkbook);
        }
    }
}

免责声明:我拥有SpreadsheetGear LLC

答案 1 :(得分:2)

我使用Gembox.Spreadsheet并发现它简单快捷。它支持xls和xlsx,可以操作单元格样式和公式。它们有一个免费版,每个工作表只支持150行,每个工作簿只支持5个工作表。

答案 2 :(得分:0)

您是在客户端还是服务器端创建此文件?如果它在服务器端,则不应使用自动化。 Aspose有一个似乎运行良好的产品,我认为它被称为Aspose.Cells。但它不是免费的。

答案 3 :(得分:0)

我在之前的帖子中没有看到的其中一个选项是NPoi - http://npoi.codeplex.com/

我相信这可以让你有条件地改变细胞颜色。

有些问题:

  • 您需要支持哪些版本的Excel?
  • 这是客户端还是服务器端?
  • 是否会在客户端上安装Excel?